목록Algorithm/Programmers (76)
S E P H ' S
코딩테스트 연습 - 하노이의 탑 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대 programmers.co.kr 풀이 1. 세 개의 기둥을 각각 From, To, Sub로 생각. 2. 원반 하나를 옮기는 것을 반복. => 재귀 3. F : 1 / T : 3 / S : 2 4. 옮겨야 하는 가장 맨 위의 원반 1->2, 2->3 def solution(n): def hanoi(n, F, T, S): if n == 1: answer.append([F, T]) return hanoi(n - 1, F, S, T) answer.append([F, T]) ha..
코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr def dfs(queen, row, n): cnt = 0 if n == row: return 1 for col in range(n): queen[row] = col for r in range(row): if queen[r] == queen[row]: break if abs(queen[r] - queen[row]) == row - r: break else: cnt += dfs(queen, row+1, n) return cnt def solution(..
코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 풀이 1. 큐를 사용 2. 맨 앞쪽 것을 빼고 큐에 남은 것들을 비교하는동안 sec 증가 3. 맨 앞쪽 것보다 큐에 남은 것이 값이 작다면 break from collections import deque def solution(prices): answer = [] queue = deque(prices) while queue: price = queue.popleft() sec = 0 for q in queue: sec +=..