목록전체 글 (248)
S E P H ' S

코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 풀이 1. bin()을 활용하여 '1'의 개수를 count 2. for문으로 1씩 증가하며 그 수를 2진수로 변환하여 '1'의 개수를 세고 같으면 그 수를 리턴. def sol(n): c = bin(n).count('1') for next_n in range(n+1, 100001): if bin(next_n).count('1') == c: return next_n
코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 풀이 1. brown + yellow = 카펫의 넓이 ( x * y ) 2. brown은 최소 8 -> 가로나, 세로 최솟값은 3. (brown이 테두리이기 때문에) 3. brown이 테두리라는 것에 의해 yellow는 (x-2) * (y-2)가 성립 4. 넓이에서 임의의 변수를 나눠서 나머지가 0인 값과 넓이에서 그 변수를 나눠서 나온 몫이 각각 가로, 세로이다. def solution(brown, yellow): hap = brown, yellow for..

코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 풀이 1. 시작은 항상 "ICN" 2. 가능한 경로가 2개 이상이면 알파벳 순서가 앞서는 경로를 return -> tickets을 오름차순으로 정렬하고 찾은 완전한 경로가 정답 3. 주어진 항공권 모두 사용 4. 모든 도시를 방문할 수 없는 경우는 주어지지 않는다. -> answer는 항상 존재 5. 중복된 항공권 존재 -> 방문 여부를 인덱스로 관리 def solution(tickets): answer = [] tickets...

코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr def solution(begin, target, words): answer = len(words) depth = -1 if target not in words: return 0 answer = DFS(begin, target, words, depth, answer) return answer def DFS(begin, target, words, depth, answer): depth += 1 nextWord = [] i..