728x90 반응형 전체 글510 [프로그래머스] 문자열 나누기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 문자열을 계속해서 첫 글자와 비교해 분리하고 그 개수를 구하는 문제이다. 문자열을 분리할 때마다 기준이 되는 첫 글자가 바뀌므로 deque 자료구조를 사용하여 문자를 제거하면서 분리하였다. 문자열을 deque 자료구조로 만들어서 제거하며 문자열을 분리하려고 하므로 deque 모듈을 불러온다. from collections import deque 입력받은 문자열을 deque 자료구조로 변경한다. s = deque(list(s)) 분리한 문자열을 저장할 리스트를 생성한다.. 2023. 9. 23. [백준] 4948번 : 베르트랑 공준 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 지정한 범위에서 소수의 개수를 찾는 문제이다. 매번 소수의 개수를 새로 구할 경우 많은 시간이 소모되어 시간초과가 발생하게 된다. 하여 소수를 구할 최댓값이 정해져 있으므로 최댓값까지 소수를 모두 판단하여 저장한 결과를 활용한다. 시간을 조금 더 단축시키기 위해 소수를 판단할 때는 해당 값의 제곱근까지만 확인한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import s.. 2023. 9. 22. [프로그래머스] 숫자 변환하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 한 숫자의 다음 변환 결과가 총 3가지가 존재하므로 해당 경우의 결과를 전부 계산하고 그 값을 다음 계산에서 사용해야 한다. 처음에 deque 자료구조를 활용한 너비우선탐색 방법으로 해결해보려고 하였으나 몇몇 테스트에서 시간초과가 발생하였다. 하여 중복되는 계산을 최대한 없애려고 하였고 값을 저장하는 방식 list와 set으로 바꿔주었다. 계산 결과를 저장할 2차원 리스트를 생성하고 초기 0행의 값은 x로 한다. li = [[x]] 원하는 지점에서 종료하기 위해 무한.. 2023. 9. 21. [백준] 1026번 : 보물 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 각 배열의 원소를 순서대로 곱하고 더했을 때 그 값이 최소가 되는 값을 구하는 문제이다. 어떤 값을 곱하고 더한 결과가 최소가 되려면 한 배열은 최솟값부터, 다른 배열은 최댓값부터 시작하여 각 배열의 최솟값과 최댓값을 곱하고 더해야 한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 각 배열의 원소 개수를 입력받는다. N = int(sys.stdin.re.. 2023. 9. 20. [프로그래머스] 완주하지 못한 선수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 참여자 명단에서 완주한 사람을 제거하고 남은 한 명의 이름을 구하는 문제이다. 처음에 참여자 명단에서 완주한 사람을 제거하는 방식으로 해결해보려고 했지만 유효성 검사에서 시간초과가 발생했다. 하여 문제의 분류처럼 해시를 이용하여 해결할 수 있는 방법을 생각했고 딕셔너리를 활용하였다. 참여자 명단을 저장할 딕셔너리를 생성한다. d = {} 참여자 명단을 한 명씩 불러오며 for i in participant 만약 동명이인이면 사람 수를 증가시킨다. if (i in d).. 2023. 9. 19. [백준] 11866번 : 요세푸스 문제 0 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 원형으로 앉은 사람을 차례대로 제거하는 문제이다. 원형으로 앉아 있으므로 해당 순서가 되기 전까지는 제일 앞사람을 제일 뒤로 옮기고, 해당 순서가 되면 해당 사람을 제거한다. 이런 방식으로 마지막까지 사람을 제거한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 사람 수와 제거할 순서를 입력받는다. N, K = map(int, sy.. 2023. 9. 18. [파이썬으로 하는 데이터 분석] 4. Numpy - 우당탕탕 개발자 되기 프로젝트 Numpy는 수치 해석 라이브러리입니다. Numpy 또한 Pandas처럼 사용하기 위해선 라이브러리를 설치해줘야 하고 import를 통해 설치한 Numpy 라이브러리를 불러와야 합니다. 라이브러리를 설치하는 방법은 Pandas 라이브러리를 설치한 방법과 동일합니다. numpy의 array() 메서드는 리스트를 배열의 형태로 만들어줍니다. numpy 라이브러리를 np 이름으로 불러온 다음, np(=라이브러리).array(리스트) 형식으로 작성해 주면 해당 리스트가 배열의 형태로 반환됩니다. array() 메서드에서 리스트를 2차원 리스트로 넣어줄 경우, 배열 또한 2차원 배열의 형태로 반환됩니다. 그리고 만들어진 배열의 shape를 출력해 보면 배열의 형태 즉, 행과 열의 값을 출력해 줍니다. 배열명.sh.. 2023. 9. 17. [프로그래머스] 롤케이크 자르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 롤케이크를 잘랐을 때, 두 조각의 토핑의 종류 개수가 동일한지 판단해야 하는 문제이다. 인덱싱을 사용하여 계속적으로 슬라이싱 한 결과를 set로 바꾸어 토핑 종료의 개수를 판단해 보았지만 시간초과를 해결할 수 없었다. 하여 한 번에 set로 저장하는 방법을 생각해 보았다. 한 명은 처음에 케이크의 전체를 가지고 시작하며 나머지 한 명에게 하나씩 토핑을 주며 두 케이크의 조각 위 토핑의 종류 개수를 비교하고 일치하는 개수를 세어주는 방식으로 시간초과를 해결하였다. 한 .. 2023. 9. 17. [파이썬으로 하는 데이터 분석] 3. Pandas - 우당탕탕 개발자 되기 프로젝트 데이터 분석에 있어 가장 먼저 공부할 부분은 pandas입니다. pandas를 사용하려면 해당 라이브러리를 설치해줘야 합니다. window + R을 눌러 실행창을 띄우고 cmd를 입력하여 명령창으로 이동합니다. 이후 명령창에서 pip install pandas 명령어를 입력하면 pandas를 설치할 수 있습니다. pandas 라이브러리를 설치했다면 간단하게 DataFrame을 만들어보겠습니다. DataFrame은 데이터를 분석하기 위한 바탕입니다. 이후 내용에서 더 자세하게 알아보겠습니다. DataFrame은 간단하게 Dictionary와 List의 형태로 만들 수 있습니다. Key가 동일한 딕셔너리를 리스트에 넣고 pandas 라이브러리 안에 있는 DataFrame() 메서드에 넣어주면 해당 리스트가 .. 2023. 9. 16. [백준] 1934번 : 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 두 수의 최소공배수를 구하는 문제인데 최소공배수를 한 번에 구하려고 하다 보니 시간초과가 발생하였다. 하여 유클리드 호제법을 활용하여 두 수의 최대공약수를 구하고 최대공약수와 두 수를 최대공약수로 나눈 값을 곱하여 최소공배수를 구하도록 구현하였다. 유클리드 호제법은 두 수의 최대공약수를 쉽게 구할 때 활용하는데 두 수 중 큰 수를 작은 수로 나누고 생긴 나머지를 이용하여 나누는 수를 나머지로 나누며 .. 2023. 9. 16. 이전 1 ··· 21 22 23 24 25 26 27 ··· 51 다음 728x90 반응형