Git: https://github.com/Tarte12/CodingTest_KUT/commit/d0e27be86ad32139ae74b2542fe394c30cccf43d
stay[i]: 스테이지 i에 머무는 사람 수 (= i에서 실패한 사람)reached[i]: 스테이지 i에 도달한 사람 수 (= i 이상 스테이지에 있는 사람 전부)sum[3] = arr[1] + arr[2] + arr[3]sum[3] = arr[3] + arr[4] + ... + arr[n]즉,
reached[i] = stay[i] + stay[i+1] + ... + stay[N] + stay[N+1] for i in range(N-1, 0, -1):
...
(3.5, 2) → 실패율 3.5, 스테이지 2t[0], t[1]) (실패율, 스테이지번호)를 같이 들고 다니면list.sort(key=...) 또는 sorted(list, key=...) reverse=True로도 가능하지만, answer.sort(key=lambda x: (-x[0], x[1]))
x[0]: 실패율 (내림차순 → -붙임)x[1]: 스테이지 번호 (동률이면 작은 번호 먼저)reached[i] == 0 → 도달한 사람이 없는 스테이지 → 실패율 0 stay[i] / reached[i]stay 배열 채움 (stage별 머무른 사람 수) reached 배열 채움 (뒤에서 앞으로 누적) (실패율, 스테이지번호) 튜플로 저장 range(N-1, 0, -1) → N-1 down to 1 (역순 루프) stay[N+1] = 전부 클리어 인원 //) ❌ → 반드시 실수 나눗셈(/) list.sort()는 제자리 정렬, 반환값은 None (실패율, 번호) 형태로 저장 → 정렬 시 자동으로 실패율 우선, 동률이면 번호 비교 가능