본문 바로가기
코딩테스트

실패율

by 느림보어른 2021. 6. 3.
def solution(N, stages):
    answer = []
    result = []
    for step in range(1, N+1):
        fail = 0
        play = 0
        for stage in stages:
            if stage == step:
                fail += 1
                play += 1
            elif stage > step:
                play+=1
            else:
                pass
        if play == 0:
            result.append((step, 0))
        else:
            result.append((step, fail/play))
        
    result.sort(key = lambda x : (-x[1], x[0]))
    
    for step in result:
        answer.append(step[0])          
    
    
    return answer

문제풀이

특별한 알고리즘이 필요하지 않은 문제였다. 나는 단계를 오름차순으로 탐색하면서 통과한 사람과 실패한 사람을 각각 구하며 실패율을 계산했다.

다른 사람 풀이 중에는 실패한 사람을 리스트에서 제외해 다음 단계의 실패율을 조사할 때 시간 복잡도를 낮추도록 유도한 풀이도 있었다.

알고리즘

출처

문제: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

'코딩테스트' 카테고리의 다른 글

수식 최대화  (0) 2021.06.03
예상 대진표  (0) 2021.06.03
오픈채팅방  (0) 2021.06.01
게임 맵 최단거리  (0) 2021.06.01
3진법 뒤집기  (0) 2021.06.01