[ํ๋ก๊ทธ๋๋จธ์ค/python] ์คํ/ํ : ํ๋ฆฐํฐ
๋ฌธ์ ์ค๋ช
์ผ๋ฐ์ ์ธ ํ๋ฆฐํฐ๋ ์ธ์ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์ธ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค์ํ ๋ฌธ์๊ฐ ๋์ค์ ์ธ์๋ ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค์๋๊ฐ ๋์ ๋ฌธ์๋ฅผ ๋จผ์ ์ธ์ํ๋ ํ๋ฆฐํฐ๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. ์ด ์๋กญ๊ฒ ๊ฐ๋ฐํ ํ๋ฆฐํฐ๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ์ ์์ ์ ์ํํฉ๋๋ค.
- ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์(J)๋ฅผ ๋๊ธฐ๋ชฉ๋ก์์ ๊บผ๋ ๋๋ค.
- ๋๋จธ์ง ์ธ์ ๋๊ธฐ๋ชฉ๋ก์์ J๋ณด๋ค ์ค์๋๊ฐ ๋์ ๋ฌธ์๊ฐ ํ ๊ฐ๋ผ๋ ์กด์ฌํ๋ฉด J๋ฅผ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฃ์ต๋๋ค.
- ๊ทธ๋ ์ง ์์ผ๋ฉด J๋ฅผ ์ธ์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 4๊ฐ์ ๋ฌธ์(A, B, C, D)๊ฐ ์์๋๋ก ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ์๊ณ ์ค์๋๊ฐ 2 1 3 2 ๋ผ๋ฉด C D A B ์์ผ๋ก ์ธ์ํ๊ฒ ๋ฉ๋๋ค.
๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง ์๊ณ ์ถ์ต๋๋ค. ์์ ์์์ C๋ 1๋ฒ์งธ๋ก, A๋ 3๋ฒ์งธ๋ก ์ธ์๋ฉ๋๋ค.
ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์๋ ๋ฌธ์์ ์ค์๋๊ฐ ์์๋๋ก ๋ด๊ธด ๋ฐฐ์ด priorities์ ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์ด๋ค ์์น์ ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ location์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์๋ 1๊ฐ ์ด์ 100๊ฐ ์ดํ์ ๋ฌธ์๊ฐ ์์ต๋๋ค.
- ์ธ์ ์์ ์ ์ค์๋๋ 1~9๋ก ํํํ๋ฉฐ ์ซ์๊ฐ ํด์๋ก ์ค์ํ๋ค๋ ๋ป์ ๋๋ค.
- location์ 0 ์ด์ (ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์๋ ์์ ์ - 1) ์ดํ์ ๊ฐ์ ๊ฐ์ง๋ฉฐ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์์ผ๋ฉด 0, ๋ ๋ฒ์งธ์ ์์ผ๋ฉด 1๋ก ํํํฉ๋๋ค.
์ ๋ต
def solution(priorities, location):
answer = 1
target = priorities[location]
priorities[location] = -1 # ๊ฐ์ ์ฐ์ ์์์ ๊ตฌ๋ณ ์ํด -1๋ก ๋ณ๊ฒฝ
while max(priorities) > target: # target๋ณด๋ค ํฐ ์ฐ์ ์์๊ฐ ์์ ๋
answer += 1
pop = priorities.index(max(priorities))
priorities = priorities[pop+1:] + priorities[:pop] # i๋ฒ์งธ ๊ฐ ์ ์ธ ์ฌ๋ฐฐ์น
return answer + priorities[:priorities.index(-1)].count(target) # ์์ ๊ฐ์ ์ฐ์ ์์ count
location์ ์์นํ ๊ฐ์ target์ ์ ์ฅํ ๋ค์ location ์์น ๊ฐ์ -1๋ก ๋ฐ๊ฟ์ค๋ค.
-1๋ก ๋ฐ๊พธ๋ ์ด์ ๋ ์์น๊ฐ ๋ฐ๋์ด๋ ๊ฐ์ ์ฐ์ ์์์ ๊ฐ๋ค๊ณผ ํท๊ฐ๋ฆฌ์ง ์๊ธฐ ์ํจ์ด๋ค.
priorities์ ์ต๋๊ฐ์ด target๋ณด๋ค ํฐ ๊ฒฝ์ฐ target๋ณด๋ค ๋จผ์ ํ๋ฆฐํธํด์ผํ ๊ฒ์ด ์๋ค๋ ์๋ฏธ์ด๋ค.
ํ๋ฆฐํธ ํ์๋ฅผ ๋ปํ๋ answer์ 1์ ๋ํ๊ณ pop์ ์ต๋๊ฐ์ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํ๋ค.
priorities๋ฅผ pop์ ์ ์ธํ ์ดํ์ ๊ฐ๋ค + pop ์ด์ ์ ๊ฐ๋ค ์์๋ก ์ฌ๋ฐฐ์นํ์ฌ ์ ์ฅํ๋ค.
target๋ณด๋ค ํฐ ๊ฐ์ด ์์ ๊ฒฝ์ฐ
target๋ณด๋ค ํฐ ๊ฐ์ ์ถ๋ ฅํ ํ์ answer์ target ์์ ์์นํ ๊ฐ์ ์ฐ์ ์์์ ๊ฐ์๋ฅผ ๋ํ์ฌ return ํ๋ค.