-
반응형
K번째 수 - https://school.programmers.co.kr/tryouts/85941/challenges
def solution(array, commands): ans = [] for i, j, k in commands: tmp = array[i-1:j] tmp.sort() ans.append(tmp[k-1]) return ans
숫자 짝꿍 - https://school.programmers.co.kr/tryouts/85942/challenges
def solution(X, Y): ans = "" for i in range(9, -1, -1): x, y = X.count(str(i)), Y.count(str(i)) if x * y > 0: # 둘 모두 존재 ans += str(i) * min(x,y) if not ans: return "-1" # 공통 X if min(X.count("0"), Y.count("0")) == len(ans): return "0" return ans
A로 B 만들기 - https://school.programmers.co.kr/tryouts/85943/challenges
dict 객체 비교로 해결
def solution(before, after): d1, d2 = dict(), dict() for i in range(len(before)): if before[i] not in d1: d1[before[i]] = 0 if after[i] not in d2: d2[after[i]] = 0 d1[before[i]] += 1 d2[after[i]] += 1 if d1 == d2: return 1 return 0
등수 매기기 - https://school.programmers.co.kr/tryouts/85944/challenges
def solution(score): score_table = dict() for idx, (s1, s2) in enumerate(score): if s1+s2 not in score_table: score_table[s1+s2] = 0 score_table[s1+s2] += 1 score_table = dict(sorted(score_table.items(), reverse=True)) pos = 1 for key, value in score_table.items(): score_table[key] = pos pos += value ans = [] for s1, s2 in score: ans.append(score_table[s1+s2]) return ans
가까운 수 - https://school.programmers.co.kr/tryouts/85945/challenges
heapq 사용해서 정렬
from heapq import heapify, heappush, heappop def solution(array, n): ans = [] heapify(ans) for num in array: heappush(ans, [abs(n-num), num]) return heappop(ans)[1]
진료 순서 정하기 - https://school.programmers.co.kr/tryouts/85946/challenges
def solution(emergency): record = [[value, idx] for idx, value in enumerate(emergency)] record.sort(reverse=True) ans = [-1 for _ in range(len(emergency))] for i, (_, idx) in enumerate(record): ans[idx] = i + 1 return ans
예산 - https://school.programmers.co.kr/tryouts/85947/challenges
def solution(d, budget): d.sort(reverse=True) sum_cost = sum(d) for i in range(len(d)): if sum_cost <= budget: return len(d) - i else: sum_cost -= d[i] return 0
실패율 - https://school.programmers.co.kr/tryouts/85948/challenges
def solution(N, stages): sum_num = stages.count(N+1) ans = [] for i in range(N, 0, -1): cur_cnt = stages.count(i) sum_num += cur_cnt if sum_num == 0: ans.append([0, i]) else: ans.append([cur_cnt / sum_num, i]) ans.sort(key=lambda x:(-x[0], x[1])) return [x[1] for x in ans]
반응형'코딩테스트' 카테고리의 다른 글
13. 다이내믹 프로그래밍(DP) (2) 2024.03.22 12. 그리디 알고리즘(탐욕법) (0) 2024.03.22 10. 그래프 - 너비 우선 탐색(BFS, Breadth First Search) (3) 2024.03.22 9. 그래프 - 깊이 우선 탐색(DFS, Depth First Search) (2) 2024.03.22 8. 힙(heap) (3) 2024.03.21