<์คํจ์จ>
๋ฌธ์ (์ถ์ฒ: https://school.programmers.co.kr/learn/courses/30/lessons/42889)
๋ฌธ์ ํ์ด
- my solution
def solution(N, stages):
answer = []
temp=[0]*N
count=len(stages) #1๋จ๊ณ๋ ์ ๋ถ ์๋์ค์ด๋ฏ๋ก ์ฒ์์ ์ ์ฒด ์ธ์
j=0
for i in temp:
x=stages.count(j+1)
if(x==0 or count==0): #0์ผ๋ก ๋๋๊ธฐ ๋ฐฉ์ง
temp[j]=0
else:
temp[j]=x/count
j+=1
count-=x #์๋จ๊ณ ํด๋ฆฌ์ดํ์ง ๋ชปํ ์ฌ๋ ๋นผ๊ธฐ
while(temp.count(-1)!=len(temp)): #๋ด๋ฆผ์ฐจ์์ผ๋ก ์คํ
์ด์ง ์ ๋ ฌ
answer.append(temp.index(max(temp))+1)
temp[temp.index(max(temp))]=-1
return answer
N: ์คํ ์ด์ง ๊ฐ์
stages: ์ฌ์ฉ์๋ค์ด ํ์ฌ ๋์ ์ค์ธ ์คํ ์ด์ง์ ๋ฒํธ
temp: ์คํจ์จ์ ๋ํ๋ด๋ ๋ฆฌ์คํธ
answer: ์คํจ์จ์ด ๋์ ์คํ ์ด์ง๋ถํฐ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์คํ ์ด์ง์ ๋ฒํธ๊ฐ ๋ด๊ฒจ์๋ ๋ฐฐ์ด
1) 1๋จ๊ณ๋ ์ ๋ถ ์๋ํ ๊ฒ์ด๋ฏ๋ก ์ ์ฒด ์ธ์์ผ๋ก setting
2) ์คํจ์จ์ ๊ณ์ฐํ๊ธฐ ์ํด ์์ง ํด๋ฆฌ์ดํ์ง ๋ชปํ ํ๋ ์ด์ด์ ์๋ฅผ ์ธ์ด x์ ์ ์ฅ
2-1) ๋์ ์ค์ธ ์ฌ์ฉ์๋ค์ ์ or ์์ง ํด๋ฆฌ์ดํ์ง ๋ชปํ ํ๋ ์ด์ด์ ์๊ฐ 0์ด๋ฉด ์คํจ์จ 0์ผ๋ก ์ ์ฅ
2-2) 0์ด ์๋ ๊ฒฝ์ฐ ๋์ ์ค์ธ (ํด๋ฆฌ์ดํ์ง ๋ชปํ ํ๋ ์ด์ด์ ์)/(์คํ ์ด์ง์ ๋๋ฌํ ํ๋ ์ด์ด ์) ๊ณ์ฐ
2-3) ๋ค์ ์คํ ์ด์ง์ ๋๋ฌํ ํ๋ ์ด์ด์๋ ์ ๋จ๊ณ๋ฅผ ํด๋ฆฌ์ดํ์ง ๋ชปํ ์ฌ๋์ ๋นผ์ค๋ค
3) ๋ฆฌ์คํธ์ ๊ฐ์ด ์ ๋ถ ๋ค -1์ด ์๋ ๊ฒฝ์ฐ ๊ณ์ ๋ฐ๋ณต
3-1) ์ต๋๊ฐ์ ์ธ๋ฑ์ค๋ฅผ answer์ ์ ์ฅ
3-2) ๊ทธ ์ธ๋ฑ์ค์ ๊ฐ์ -1๋ก ์ ์ฅ
์ฒ์์ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ์์ง๋ง 0์ผ๋ก ๋๋๊ธฐ๋ฅผ ๋ฐฉ์งํ๋ if๋ฌธ์ ์ถ๊ฐํ์ฌ ํด๊ฒฐํ์๋ค.
์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ ๊ฒ์ ์คํ ์ด์ง์ ๋๋ฌํ ํ๋ ์ด์ด ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ๋ค๋ฅด๊ฒ ๊ตฌํํ์ฌ ํด๊ฒฐํ์๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges