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