728x90 반응형 Programmers180 [프로그래머스] 콜라 문제 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 남아있는 콜라의 개수가 바꿀 수 있는 콜라의 개수보다 작아질 때까지 반복한다. while (n >= a) 바꾼 콜라의 개수는 현재 가지고 있는 콜라의 개수에서 바꿔주는 빈 병의 개수로 나눈 몫에 가져가면 얼마의 새 병으로 바꿔주는 지를 곱한 값이다. answer += (n // a) * b 이후 바꾼 결과에 바꾸기 전 바꾸지 못하고 남은 콜라까지 더하여 그 값을 새로 저장한다. n = (n // a) * b + (n % a) 3. 소스코드 def solution(a, b, n):.. 2023. 7. 14. [프로그래머스] 멀리 뛰기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 수마다 경우의 수를 저장할 딕셔너리를 생성한다. d = {} 처음에 움직이지 않는 경우와 1칸 움직이는 경우를 딕셔너리에 추가한다. d[0] = 1 d[1] = 1 다음 숫자인 2부터 입력받은 수까지 반복하며 다음 수의 경우의 수를 저장한다. 다음 수의 경우의 수는 이전 수의 경우의 수와 그 이전 수의 경우의 수를 더한 값이다. for i in range(a, n + 1): d[i] = d[i - 1] + d[i - 2] 1칸과 2칸을 이동하여 각 칸으로 갈 수 있는 방법은 .. 2023. 7. 14. [프로그래머스] 가장 가까운 같은 글자 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 추출한 글자를 저장하기 위한 리스트를 생성한다. word = list() 입력받은 문자열의 각 문자를 하나씩 추출한다. for i in s 만약 추출한 글자 리스트에 추출한 문자가 있다면 if (i in word) 처음 나온 문자가 아니므로 같은 글자가 몇 칸 앞에 있는지 구한다. 무조건 앞에 있으므로 거리를 저장할 변수를 생성하고 1로 초기화한다. count = 1 추출한 글자 리스트의 제일 뒤부터 문자를 하나씩 추출한다. for j in range(len(answer) - 1.. 2023. 7. 12. [프로그래머스] 푸드 파이트 대회 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 물을 기준으로 앞, 뒤로 배치해야 하므로 appendleft() 함수와 append() 함수를 사용하기 위해 deque 자료구조를 활용한다. deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 각 음식 배치를 저장할 deque을 생성한다. d = deque() 처음에 기준이 되는 물을 배치한다. 각 음식은 인덱스 값을 추가한다. d.append(0) 각 음식을 추가하는 방식으로 배치하기에 음식을 칼로리가 높은 순으.. 2023. 7. 12. [프로그래머스] N개의 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 입력받은 리스트 중 앞에서 2개씩 꺼내어 두 수의 최소공배수를 구하고 구한 공배수를 다시 리스트의 제일 앞에 추가하며 최소공배수가 1개가 될 때까지 구한다. 구한 공배수를 제일 앞에 추가할 때 appendleft() 함수를 사용하기 위해 리스트를 deque 자료구조로 바꿔 사용해야 하는데 deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 입력받은 리스트를 deque 자료구조로 변환한다. queue = deque(.. 2023. 7. 12. [프로그래머스] 점프와 순간 이동 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제를 풀 때 어떻게 하면 건전지를 최소로 사용할 수 있을지 생각하면서 순간 이동을 많이 사용해야겠다는 생각을 했다. 1부터 각 경우마다 최소 건전지 사용 횟수를 계산해 보다가 6에서 입출력 예 설명을 보니 6은 1로 점프 후, 2로 순간 이동, 다시 3으로 점프, 6으로 순간 이동한 결과를 확인하게 되었다. 하여 무조건 먼저 순간 이동으로 최대로 이동을 하면 안 되겠다는 생각이 들었다. 이후, 2로 계속 나눠보기도 하고 3으로 나눠보기도 하고 계속 고민을 하던 중 각 수를.. 2023. 7. 12. [프로그래머스] 구명보트 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 리스트의 형태로 해결하려고 하였지만 리스트는 연산 속도가 느려 자꾸 시간초과가 생겼다. 하여 deque의 형태로 해결하였다. 이 문제는 구명보트에 최대 2명까지 태울 수 있으므로 가장 가벼운 사람과 가장 무거운 사람을 태웠을 때 무게 제한을 넘지 않으면 2명을 태우고 무게 제한을 넘는다면 가장 무거운 사람은 혼자 타고 가는 방식으로 해결한다. deque을 사용하기 위해 collections 모듈에서 deque을 불러온다. from collections import deque 입력.. 2023. 7. 10. [프로그래머스] 두 개 뽑아서 더하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 각 수를 두 개씩 선택하여 모두 더해보고 해당 값이 리스트에 없으면 새로 저장하는 방식으로 해결하였다. 리스트에서 두 개씩 수를 선택한다. for i in range(len(numbers) - 1): for j in range(i + 1, len(numbers)) 만약 선택한 두 수를 더한 값이 정답 리스트에 없으면 if ((numbers[i] + numbers[j]) not in answer) 정답 리스트에 두 수의 합을 추가한다. answer.append(numbers[i] .. 2023. 7. 10. [프로그래머스] 예상 대진표 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 해당 문제는 전체 참가자를 두 부분으로 나누고 두 참가자의 위치가 서로 분리되어 있으면 결과를 도출하는 방식으로 해결했습니다. 정답이 도출되어 반환되기 전까지 계속 반복합니다. while (True) 가운데 지점을 정합니다. center = n // 2 만약 두 참가자가 같은 부분에 있는데 중앙보다 큰 쪽에 있다면 if (a > center) and (b > center) 참가자의 번호를 다시 1부터 나열되도록 맞추기 위해 각 참가자의 번호에서 중앙의 값을 빼준 값으로 새로 저장.. 2023. 7. 10. [프로그래머스] K번째수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제 설명 2. 풀이과정 매개변수로 입력받은 commands의 1차원 배열마다 각 결과를 도출해야 하므로 commands의 1차원 배열 크기만큼 반복한다. for i in range(len(commands)) 추출한 commands의 1차원 배열의 값 중 i와 j의 범위의 값을 매개변수로 입력받은 배열에서 슬라이싱으로 추출하여 새로운 리스트로 저장한다. li = array[commands[i][0] - 1 : commands[i][1]] 추출한 값을 오름차순으로 정렬한다. li.sort() 정답 리스트에.. 2023. 7. 10. 이전 1 ··· 10 11 12 13 14 15 16 ··· 18 다음 728x90 반응형