반응형 알고리즘130 [파이썬🐍] 프로그래머스 : 순위 검색 from itertools import combinations from collections import defaultdict import bisect def solution(info, query): answer = [] people = defaultdict(list) for i in info: person = i.split() score = int(person[-1]) people[''.join(person[:-1])].append(score) for j in range(4): candi = list(combinations(person[:-1], j)) for c in candi: people[''.join(c)].append(score) for i in people: people[i].sort() #.. 2023. 1. 11. [파이썬🐍] 프로그래머스 : 부대복귀 def solution(n, roads, sources, destination): matrix = [[] for _ in range(n+1)] ##매트릭스 생성 for a, b in roads: matrix[a].append(b) matrix[b].append(a) print(matrix) ##처음은 경로 없음으로 세팅, destination은 0으로 세팅 road_map = [-1] * (n+1) road_map[destination] = 0 queue = [(destination, 0)] while queue: q = queue.pop(0) for i in matrix[q[0]]: print(i) if road_map[i] == -1: queue.append((i, q[1]+1)) road_map[i.. 2023. 1. 11. [파이썬🐍] 프로그래머스 : 롤케이크 자르기 from collections import Counter def solution(topping): answer = 0 A = set() B = Counter(topping) for i in topping: B[i] -= 1 A.add(i) if B[i] == 0: B.pop(i) if len(B) == len(A): answer += 1 return 2023. 1. 10. [파이썬🐍] 프로그래머스 : 다단계 칫솔 판매 def solution(enroll, referral, seller, amount): answer = [0] * len(enroll) #인덱스 dic형태로 찍어두기 enroll_idx = {enroll[i]: i for i in range(len(enroll))} for i in range(len(seller)): money = amount[i] * 100 idx = enroll_idx[seller[i]] while money > 0: percent_10 = money // 10 answer[idx] += money - percent_10 money = percent_10 if referral[idx] == "-": break idx = enroll_idx[referral[idx]] return answer 2023. 1. 10. 이전 1 2 3 4 5 ··· 33 다음 반응형