코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 아주 단순하게 재귀함수로 DFS를 구현하였다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 def solution(numbers, target): len_n = len(numbers) def dfs(idx, result): if idx == len_n: if result == target: return 1 else: return 0 return dfs(idx + 1, result + number..
코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 처음에 큐를 이용한 방법이 아니라 다른 방법을 썼다가 피똥쌌다. 쉬운 문제를 괜히 어렵게 푸는건 방법이 아닌 것 같다. 지금은 내가 알고 있는 방법 중에 그래도 금방 생각나는 방법으로 풀고 효율성 문제에 맞딱드렸을 때 다시 효율성을 고민하도록 하자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 from ..
코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 남은 작업을 해치우기 위해 며칠 필요한지 담은 finish_days라는 deque를 만든다. finish_days(Q) 가 빌 때까지 반복하는 반복문을 만든다. 가장 첫번째 요소를 뽑고 해당 요소의 값보다 큰 값을 가진 요소가 나올 때 까지 뽑아내면서 count를 늘려준다. 큰 값을 가진 요소를 만나면 그 자리에서 멈추고 answer에 추가시켜준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23..
코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 다리를 건너는 모양새가 큐의 자료구조와 닮았다고 생각하였고, popleft()를 많이 활용하게 될 것 같아 deque를 받아와서 활용하였다. 자세한 풀이는 주석으로 달아놨다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 from collections import deque def solution(bridge_length, weight, truck_weight..
문제 풀러 가기 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 이게 도대체 왜 스택/큐에 있는지 이해가 잘 안 되었다. 단순하게 생각해서 이중 for문으로 돌리면 되지 않을까 싶어서 돌렸더니 금방 풀려서 너무 허무맹랑... 다른 사람의 풀이를 봐도 내가 푼 방법과 다르지 않았다. 이 문제 에서 스택/큐가 보이지 않는 건 내가 아직 부족해서라고 생각이 들기는 한다. 1 2 3 4 5 6 7 8 9 def solution(prices): L = len(prices) an..