코딩테스트/프로그래머스

[프로그래머스] [2019 KAKAO BLIND RECRUITMENT] 실패율

박소민 2023. 2. 25. 14:35
실패율
 

프로그래머스

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

programmers.co.kr

 

  • 내 풀이
def solution(N, stages):
    result=[]
    empty=[] #없는 스테이지 뒤에 추가하기 위함
    answer=[]
    stages.sort()
    for i in range(1,N+1):
        #멈춘 사람 수
        n=stages.count(i) #i번 스테이지
        if i not in stages:
            empty.append(i)
            continue
        idx=stages.index(i)
        
        #도달 사람 수: 정렬해놨기 때문에 뒤는 다 통과한 사람들
        m=len(stages[idx:])
        if m>0:
            result.append((i,n/m))
            
    result.sort(key=lambda x:-x[1])
    answer=[x[0] for x in result]
    answer+=sorted(empty)
    
    return answer

 

 

  • 다른 사람 풀이
def solution(N, stages):
    answer=[]
    fail=[]
    info=[0]*(N+2)
    for stage in stages:
        info[stage]+=1
    for i in range(N):
        #스테이지에 도달한 유저 수 합산
        be=sum(info[i+1:])
        yet=info[i+1]
        if be==0:
            fail.append((i+1,0))
        else:
            fail.append((i+1,yet/be))
    for j in sorted(fail, key=lambda x: x[1], reverse=True):
        answer.append(j[0])
    
    return answer