https://school.programmers.co.kr/learn/courses/30/lessons/42889
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
์ฒ์์ ์ ์ถํ์๋ ์ฝ๋ (์ ์:70์ )
def solution(N, stages):
answer = []
failed=[0]*501 #๊ฐ ์คํ
์ด์ง์ ๋ฉ์ถฐ์๋ ์ฌ์ฉ์ ์ ์ ์ฅํ ๋ฐฐ์ด
cleared=[0]*501 #๊ฐ ์คํ
์ด์ง์ ๋๋ฌํ ์ฌ์ฉ์ ์ ์ ์ฅํ ๋ฐฐ์ด
for i in stages:
failed[i] += 1
for j in range(1,i+1):
cleared[j] += 1
arr=[]
for i in range(1,501):
#๋ถ๋ชจ๊ฐ 0์ด ๋์ง ์๋ ๊ฒฝ์ฐ์๋ง ์คํจ์จ๊ณผ ์คํ
์ด์ง๋ฒํธ ์ ์ฅ
if cleared[i] != 0:
arr.append((failed[i]/cleared[i],i))
#์ฒซ๋ฒ์งธ์กฐ๊ฑด: ์คํจ์จ ๋ด๋ฆผ์ฐจ์, ๋๋ฒ์งธ์กฐ๊ฑด: ์คํ
์ด์ง๋ฒํธ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
arr.sort(key=lambda x:(-x[0],x[1]))
#์ ๋ ฌํ ์คํ
์ด์ง ๋ฒํธ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ ๋ฆฌํด
for rate,num in arr:
if num<=N:
answer.append(num)
return answer
ํ ์คํธ์ผ์ด์ค ์ค ๋ช๋ช ๊ฐ์์๋ง ์ค๋ต์ด ๋ด๋ค.
N์ ๋๋ฌํ ์ฌ์ฉ์๊ฐ ํ ๋ช ๋ ์์ ๊ฒฝ์ฐ ์คํจ์จ 0์ผ๋ก arr์ append๋์ด์ผ ํ๋๋ฐ,
์ด ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ง ์์์ ์ค๋ต์ด ๋ด๋ ๊ฑฐ์๋ค.
์๋ฅผ ๋ค์ด ์ธํ N=4, stages=[1,1,2,3,3,3]์ผ ๋
์์ํ์ผ๋ก๋ [3,2,1,4] ๊ฐ ๋์ด์ผ ํ๋๋ฐ
์ ์ฝ๋์์ผ๋ก๋ [3,2,1] ๋ง ๋ฆฌํด๋๋ ์ค๋ฅ๊ฐ ์์๋ค.
์ด๋ฌํ ์ ์ ๊ณ ๋ คํ์ฌ ์ฝ๋๋ฅผ ์์ ํ๋๊น ์ ๋ต ํ์ ์ ๋ฐ์๋ค.
์ ๋ต ์ฝ๋
def solution(N, stages):
answer = []
failed=[0]*502 #๊ฐ ์คํ
์ด์ง์ ๋ฉ์ถฐ์๋ ์ฌ์ฉ์ ์
cleared=[0]*502 #๊ฐ ์คํ
์ด์ง์ ๋๋ฌํ ์ฌ์ฉ์ ์
for i in stages:
failed[i] += 1
for j in range(1,i+1):
cleared[j] += 1
arr=[]
for i in range(1,N+1):
#๋ถ๋ชจ๊ฐ 0์ด ๋์ง ์๋ ๊ฒฝ์ฐ, ์คํจ์จ๊ณผ ์คํ
์ด์ง ๋ฒํธ ์ ์ฅ
if cleared[i] != 0:
arr.append((failed[i]/cleared[i],i))
#ํด๋น ์คํ
์ด์ง๊น์ง ๋๋ฌํ ์ฌ์ฉ์ ์๋ ๊ฒฝ์ฐ,
์คํจ์จ์ 0์ผ๋ก ์ ์ฅ
else:
arr.append((0,i))
#์ฒซ๋ฒ์งธ์กฐ๊ฑด:์คํจ์จ ๋ด๋ฆผ์ฐจ์, ๋๋ฒ์งธ์กฐ๊ฑด:์คํ
์ด์ง๋ฒํธ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
arr.sort(key=lambda x:(-x[0],x[1]))
#์ ๋ ฌํ ์คํ
์ด์ง ๋ฒํธ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ ๋ฆฌํด
for rate,num in arr:
if num<=N:
answer.append(num)
return answer
+์ถ๊ฐ
1. ์คํ ์ด์ง ๊ฐ์ N์ 1์ด์ 500์ดํ์ ์์ฐ์๋ฌ๊ณ
2. stages์๋ 1์ด์ N+1 ์ดํ์ ์์ฐ์๊ฐ ๋ด๊ฒจ์๋ค๊ณ ํ๋ค.
์ฒ์์๋ 1๋ฒ ์กฐ๊ฑด๋ง์ ๋ณด๊ณ failed,cleared ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ฅผ 501๋ก ์ค์ ํ์๋๋ฐ,
ํ ์คํธ์ผ์ด์ค ์ค 2๊ฐ์์ ๋ฐํ์ ์๋ฌ๊ฐ ๋ด๋ค.
arr1, arr2์ ๊ฐ์ ์ ์ฅํด์ฃผ๋ ๊ณผ์ ์์ (line 7~10)
stages ๊ฐ ์ค์ ์ ํํ N+1์ด ์๋ ๊ฒฝ์ฐ ์ธ๋ฑ์ค ์๋ฌ๊ฐ ๋ ์ ๊ทธ๋ฐ ๊ฒ ๊ฐ๋ค.
๊ทธ๋์ ๋ ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ฅผ 502๋ก ์ค์ ํด์ฃผ๋ ๋ชจ๋ ํ ์คํธ์ผ์ด์ค์์ ์คํจ ์์ด ์ ์คํ๋์๋ค.
'์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค]8979๋ฒ: ์ฌ๋ฆผํฝ (0) | 2023.03.12 |
---|---|
[๋ฐฑ์ค]2292๋ฒ: ๋ฒ์ง (0) | 2023.03.12 |
[๋ฐฑ์ค]18310๋ฒ: ์ํ ๋ (1) | 2023.03.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์๋ฌผ์ ์ ์ด์ (0) | 2023.03.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฒน์น๋ ์ ๋ถ์ ๊ธธ์ด (0) | 2023.03.04 |