programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr from collections import deque def solution(people, limit): answer = 0 people.sort() people = deque(people) while(people): if len(people) == 1: people.pop() else: heavy = people.pop() light = peopl..
programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr def solution(bridge_length, weight, truck_weights): answer = 0 bridge = [0] * bridge_length while(bridge): answer += 1 bridge.pop(0) if truck_weights: if sum(bridge) + truck_weights[0]
programmers.co.kr/learn/courses/30/lessons/42584 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr from collections import deque def solution(prices): answer = [] prices = deque(prices) while(prices): p = prices.popleft() cnt = 0 for price in prices: cnt += 1 if p > price: break answer...
programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr def solution(priorities, location): answer = 0 priority = [] for i in range(len(priorities)): priority.append((priorities[i], i)) while(priority): max_p = max(priority) p = priority.pop(0) if p[0] != max_p[0]: pri..
programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr def solution(board, moves): answer = 0 basket = [] cnt = -1 // basket의 길이를 저장하는 변수 for move in moves: for i in range(len(board)): if board[i][move-1] != 0: basket.append(board[i][move-1]) board[i][move-1] = 0 cnt += 1 if cnt >..
programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 7 7 7 7 7 3 8 10 15 10 15 10 15 10 15 8 1 0 -> 8 1 0 -> 18 16 15 -> 18 16 15 -> 18 16 15 2 7 4 4 2 7 4 4 2 7 4 4 20 25 20 19 20 25 20 19 4 5 2 6 5 4 5 2 6 5 4 5 2 6 5 4 5 2 6 5 25 30 27 26 24 def solution(triangle): answer = 0 length = len(triangle) for ..
programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 programmers.co.kr 첫번째 집을 터는 경우에 마지막 집은 인접한 경우이기 때문에 털 수 없고, 마찬가지로 마지막 집을 터는 경우 첫번째 집을 털 수 없기 때문에 두 경우로 나눠서 계산 def solution(money): answer = 0 length = len(money) dp = [0] * length # 첫번째 집을 털고, 마지막 집은 안 터는 경우 dp[0] = money[0] dp[1]..