알고리즘

[프로그래머스/Lv.1] 실패율_2019 KAKAO BLIND RECRUITMENT

motti 2023. 6. 3. 21:59
반응형

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42889

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

from collections import Counter
def solution(N, stages):
    answer = []
    cnt = Counter(stages)
    user = len(stages)
    fail = 0
    for i in range(1,N+1):
        try:
            fail = cnt[i]
            answer.append((i,fail/user))
            user -=  fail
        except :
            answer.append((i,0))
    answer = sorted(answer, key = lambda x:x[1],reverse= True)
        
    return list(map(lambda x:x[0],answer))

풀이

  1. stages 갯수 세기 {'2' : 3 , '1' : 1}
  2. 실패율 계산 : 스테이지에 있는 사람 수/남은 도전자 수
  3. 스테이지와 실패율을 튜플로 넣기
  4. 실패율 계산하고 도전자수 갱신
  5. 실패율을 내림차순으로 정렬
  6. 정렬된 실패율의 스테이지 추출
 
반응형