Home

[프로그래머스] 시저 암호 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12926 2. 풀이 def solution(s, n): answer = '' for x in s: if x.isalpha() == False: answer += x continue if x.islower(): base = 'a' else: base = 'A' answer += chr(ord(base) + ((ord(x) + n - ord...

Read more

[프로그래머스] 땅따먹기 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12913 2. 풀이 dp 를 이용해서 문제를 해결합니다. 현재 위치로 올 수 있는 경로까지의 값 중에서 가장 큰 값과 현재의 값을 더하는 식을 반복합니다. def solution(land): dp = [[0]*4 for i in range(len(land))] for i, x in enumerate(land[0]): dp[0][i] = land[0][i] for i in range(1, len(land)): dp[i][0] = max(dp[i -...

Read more

[프로그래머스] 야근 지수 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/12927 2. 풀이 힙을 사용해서 제일 큰 숫자부터 1씩 빼주는 작업을 수행합니다. 가장 큰 수가 1씩 감소하는 것이 다른 수가 1씩 감소하는 것보다 훨씬 더 값을 줄일 수 있습니다. import heapq def solution(n, works): heap = [] for x in works: heapq.heappush(heap, -x) for i in range(n): bigger = -heapq.heappop(heap) ...

Read more

[프로그래머스] 입국심사 문제 풀이

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/68935 2. 풀이 처음에 이 문제를 어떻게 풀어야 될지 매우 난감해서 다른 분들의 풀이를 참조하였습니다. 이진 탐색을 이용하면 쉽게 풀 수 있는 문제였습니다. 이진 탐색을 이용하여 최대 가능한 시간(최소검색시간을 가진 검색원의 검색 시간 * 사람수)과 0초를 기준으로 가능한 시간을 줄여갑니다. 각 탐색마다 middle 값의 시간동안 각 검색원들이 가능한 검색가능한 사람 수를 모두 더한 후 비교합니다. 가능하면 답으로 갱신, 가능하지 않으면 넘어가는 과정을 반복합니다....

Read more