~๋ชฉ์ฐจ~
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/42889
๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ
- ๊ฐ ์คํ ์ด์ง ๋ณ ์คํจ์จ ๊ณ์ฐ -> ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ(์คํจ์จ์ด ํฐ ๊ฐ์ด ์์ ์์ผํ๋ฏ๋ก)
- ์คํจ์จ์ด ๊ฐ๋ค๋ฉด ์คํ ์ด์ง ๋ฒํธ -> ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
- ์ ๋ ฌ ๊ฒฐ๊ณผ์์ ์คํ ์ด์ง ๋ฒํธ๋ง ๋ฆฌ์คํธ๋ก ์ถ๋ ฅ
์์ฑ ์ฝ๋
def solution(N, stages):
players = len(stages) # ์ฌ์ฉ์ ์
answer = []
for stage in range(1, N+1): # ๊ฐ ์คํ
์ด์ง ๋ณ ์คํจ์จ ํ์
notsolved = stages.count(stage) # ํด๋น ์คํ
์ด์ง์ ์์นํ ์ฌ์ฉ์ ์
# ํด๋น ์คํ
์ด์ง๋ฅผ ํด๋ฆฌ์ดํ ์ฌ๋(players)์ด 0์ด ์๋๋ผ๋ฉด '๋นํด๋ฆฌ์ด/ํด๋ฆฌ์ด' ๊ฐ ์คํจ์จ์ด ๋๋ค
answer.append((notsolved/players, stage) if players != 0 else (0, stage))
players -= notsolved # ๋ค์ ์คํ
์ด์ง๋ ํด๋น ์คํ
์ด์ง ๋นํด๊ฒฐํ ์ฌ๋ ์ ์ธ
# ์คํจ์จ(๋ด๋ฆผ์ฐจ์) -> ์คํ
์ด์ง ๋ฒํธ(์ค๋ฆ์ฐจ์)์ผ๋ก ์ ๋ ฌ
answer.sort(key=lambda x: (-x[0], x[1]))
return [i[1] for i in answer] # ์ ๋ ฌ๋ ๊ฒฐ๊ณผ์์ ์คํ
์ด์ง ๋ฒํธ๋ง ์ถ๋ ฅ
๋์์ด ๋์ จ๋ค๋ฉด ์ข์์ ๋๋ฌ์ฃผ์ธ์๐