프로그래밍 이야기/파이썬 코딩 테스트 스터디

파이썬 코딩테스트 스터디 2주차 #7 - 문제 06 실패율

hoony926 2024. 7. 3. 10:32

 

 

 

 

이번 문제에서는 2가지가 좀 힘들었다

첫째, 문제 자체가 이해하기가 힘들었다.

그냥 예제보고 유추

 

둘째, dictionary정렬이 어려웠다.

그래서 이 부분도 뒤에서 다뤄보자

 

def solution(N, stages):
    # 입력값: 5, [2, 1, 2, 6, 2, 4, 3, 3]

    answer = []
    
    temp ={}                    #단계별 실패율 구하기위한 dictionary 정의
    left_gamer = 0 
    for i in range(N):          #stage만큼 반복문 
        if (i+1) in stages:     
                        # 숫자 i의 갯수      /     남은 사람 = 전체 인원수 - 빠진사람
            temp[i+1] = (stages.count(i+1) / (len(stages)-left_gamer))
                        # 앞stage에서 빠진 사람 추가
            left_gamer = left_gamer + stages.count(i+1)
        else:
            temp[i+1] = 0 
    print(temp)
    #	{1: 0.125, 2: 0.42857142857142855, 3: 0.5, 4: 0.5, 5: 0}
    
    result = sorted(temp, key=lambda x: temp[x], reverse=True)
    
    print(result)
    # [3, 4, 2, 1, 5]
    
    answer = result     
    
    return answer

 

 

dictionary 정렬 공부!

위 문제 예제에서 

정렬 전 실패율을 전부 다 구하고 나면

temp =  {
		1: 0.125, 
            2: 0.42857142857142855, 
            3: 0.5, 
            4: 0.5, 
            5: 0
           }

 

1. sorted(temp) : 키순으로 키만 반환!

    값은 전혀 신경쓰지않고

    키끼리 비교만! 키만 반환 !

 

 

2. sorted(temp, reverse=True) : 키 역순으로 키만 반환!

    값은 전혀 신경쓰지 않고

    키끼리만 비교! 키만 반환

 

 

3.sorted(temp, key = lambda x : temp[x]) : 값 순서로 키만 반환!

     값으로 비교! 키만 반환

 

4.sorted(temp, key = lambda x : temp[x], reverse=True) : 값 역순으로 키만 반환!

      값 역순으로 비교! 키만 반환!

 

 

 

key value가 같이 리턴되는 정렬은 

다른 포스팅에서 다시 정리 하기로!

 

끝!

 

 2019 KAKAO BLIND RECRUITMENT 실패율

https://school.programmers.co.kr/learn/courses/30/lessons/42889?language=python3

 

프로그래머스

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

programmers.co.kr