πŸ€–/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ | Lv1] μ‹€νŒ¨μœ¨ (Python) - 2019 KAKAO BLIND RECRUITMENT

sssbin 2023. 1. 26. 18:45

 

https://school.programmers.co.kr/learn/courses/30/lessons/42889

 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ λ§€μΉ­. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 λ§€μΉ­ λ°›μœΌμ„Έμš”.

programmers.co.kr

 

μ²˜μŒμ—” for문을 λŒλ¦¬λ©΄μ„œ 도달과 클리어 개수λ₯Ό ν•˜λ‚˜ν•˜λ‚˜ μ„Έμ„œ κ³„μ‚°ν–ˆλ‹€.

ν•˜μ§€λ§Œ ν•œ λ¬Έμ œμ—μ„œ μ‹œκ°„ μ΄ˆκ³Όκ°€ λ–΄κ³ , λ‹€μ‹œ 문제λ₯Ό λ³΄λ©΄μ„œ κ·œμΉ™μ„ μ°Ύμ•„λƒˆλ‹€.

 

각 μŠ€ν…Œμ΄μ§€μ— λ„λ‹¬ν•œ ν”Œλ ˆμ΄μ–΄μ˜ μˆ˜λŠ” μ „ μŠ€ν…Œμ΄μ§€λ₯Ό ν΄λ¦¬μ–΄ν•œ ν”Œλ ˆμ΄μ–΄ μˆ˜μ™€ κ°™κ³ ,

μ–΄μ°¨ν”Ό μœ„μ˜ κ³Όμ •μ—μ„œ λ„λ‹¬ν•˜μ§€ λͺ»ν•œ ν”Œλ ˆμ–΄μ–΄μ˜ μˆ˜λŠ” κ±ΈλŸ¬μ§€κΈ° λ•Œλ¬Έμ— μŠ€ν…Œμ΄μ§€μ— λ„λ‹¬ν–ˆμ§€λ§Œ ν΄λ¦¬μ–΄ν•˜μ§€ λͺ»ν•œ ν”Œλ ˆμ΄μ–΄μ˜ μˆ˜λŠ” stagesμ—μ„œ ν•΄λ‹Ή 숫자(+1)의 count와 κ°™λ‹€.

 

λ”•μ…”λ„ˆλ¦¬λ₯Ό λ§Œλ“€μ–΄ 각 μŠ€ν…Œμ΄μ§€ λ³„λ‘œ μ‹€νŒ¨μœ¨μ„ μ €μž₯ν•΄μ£Όκ³  μ •λ ¬ν•œ 인덱슀λ₯Ό λ°˜ν™˜ν–ˆλ‹€.

 

# ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ 42889: μ‹€νŒ¨μœ¨ (2019 KAKAO BLIND RECRUITMENT)

import numpy

def solution(N, stages):
    answer = {}
    
    arrive = [0 for i in range(N)]
    stay = [0 for i in range(N)]

    arrive[0] = len(stages)
    stay[0] = stages.count(1)
    answer[1] = stay[0] / arrive[0]
    

    for i in range(1, N):
        arrive[i] = arrive[i-1] - stay[i-1]
        stay[i] = stages.count(i+1)

        if arrive[i] == 0:
            answer[i+1] = 0
        else:
            answer[i+1] = stay[i] / arrive[i]

    answer = list(dict(sorted(answer.items(), key=lambda x:x[1], reverse=1)).keys())
    
    return answer