카카오 2019 기출 - 실패율
def solution(N, stages): failRate = [] for i in range(1, N+1): cnt, rate = 0, 0 for j in stages: if j >= i: cnt += 1 if j == i: rate += 1 if cnt: failRate.append([i, rate / cnt]) else: failRate.append([i, 0]) #실패율 내림차순 정렬, 실패율 같으면 스테이지 번호로 오름차순 정렬 failRate = sorted(failRate, key = lambda x : (-x[1], x[0])) return list(map(lambda x : x[0],failRate)) cnt : 현재 스테이지에 도달한 플레이어 수 rate : 현재 스테이지에 머물러 있..
더보기
프로그래머스 여행경로 - 백트래킹
def dfs(ans, routes, pointNum, answer, isFinished): if len(ans) == pointNum: if not isFinished[0]: for i in ans: answer.append(i) isFinished[0] = True return nexts = isPossible(ans[-1], routes) for next in nexts: if not isFinished[0]: next[1] = True ans.append(next[0]) dfs(ans, routes, pointNum, answer, isFinished) # 티켓 사용여부 False로 돌려놓음 next[1] = False ans.pop() def isPossible(start, routes): re..
더보기