๋ฌธ์
๐ ํ์ด์ฌ ์ผ๋ก ํ์ด
๐ ๋ฌธ์ ๋งํฌ :
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ๋ฌธ์ ์ค๋ช :
์ผ๋ฐ์ ์ธ ํ๋ฆฐํฐ๋ ์ธ์ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์ธ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค์ํ ๋ฌธ์๊ฐ ๋์ค์ ์ธ์๋ ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค์๋๊ฐ ๋์ ๋ฌธ์๋ฅผ ๋จผ์ ์ธ์ํ๋ ํ๋ฆฐํฐ๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. ์ด ์๋กญ๊ฒ ๊ฐ๋ฐํ ํ๋ฆฐํฐ๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ์ ์์ ์ ์ํํฉ๋๋ค.
| 1. ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์(J)๋ฅผ ๋๊ธฐ๋ชฉ๋ก์์ ๊บผ๋
๋๋ค. 2. ๋๋จธ์ง ์ธ์ ๋๊ธฐ๋ชฉ๋ก์์ J๋ณด๋ค ์ค์๋๊ฐ ๋์ ๋ฌธ์๊ฐ ํ ๊ฐ๋ผ๋ ์กด์ฌํ๋ฉด J๋ฅผ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฃ์ต๋๋ค. 3. ๊ทธ๋ ์ง ์์ผ๋ฉด 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๋ก ํํํฉ๋๋ค.
๐ ์ ์ถ๋ ฅ ์

ํ์ด
์ถ์ธก)
๋์ค์ ๊ฐ์ ์ซ์๋ผ๋ฆฌ ์์น์ ๋ณด ํท๊ฐ๋ฆฌ์ง ์๊ฒ ์ฐ์ ์์์ ์ซ์๋ค๊ณผ ์ธ๋ฑ์ค๋ฅผ ์ง์ ์ง์ด์ฃผ๊ณ ๋ค์ ๋ฐฐ์ด๋ก ๋ง๋ฌ
๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ฐฐ์ด๋ฅผ ํ์ฒ๋ผ ์ผ๋จ front์์ ํ๋ popํด์ ์ฐ์ ์์์ ๋งฅ์ค ๊ฐ์ด๋ ๋น๊ต
๋งฅ์ค๊ฐ์ด๋ ๋์ผํ์ง ์์ผ๋ฉด
- ๋ค์ ๋ฐฐ์ด์ appendํด์ ๋ค๋ก ๋ณด๋ด๊ณ
๋งฅ์ค๊ฐ์ด๋ ๋์ผํ๋ฉด ๊ทธ๋๋ก ํ๋ฆฐํธ!
- ํ๋ฆฐํธ๋ ์์ ์นด์ดํธ๋ฅผ ์ฌ๋ฆผ
- ์ฐ์ ์์์์ ํด๋น ์ซ์๋ฅผ popํด์ฃผ์ด ๋ค์ ์๋ฒ์ ์ฐพ์ ์ ์๊ฒ ํด์ค๋ค.
- ํ๋ฆฐํธ๊ฐ ๋ฌ์ ๋์ ์ธ๋ฑ์ค๊ฐ location๊ณผ ์ผ์นํ๋ค๋ฉด ๊ทธ ์นด์ดํธ๋ฅผ ๋ฐํ
์์ค์ฝ๋)
* 1์ฐจ)
def solution(priorities, location):
answer = 0
queue = [(i,priorities[i]) for i in range(0,len(priorities))]
while True:
one = queue.pop(0)
max_num = max(priorities)
if one[1] != max_num :
queue.append(one)
else :
priorities.pop(priorities.index(max_num))
answer += 1
if location == one[0] :
return answer
๋ฆฌ๋ทฐ)
์ฐ์ ์์์์ ๋งฅ์ค๊ฐ์ popํ ๋ ์๊ฐ ๊ทธ๋ผ ๊ฐ์ max๊ฐ์ด ์๋ ๊ฒฝ์ฐ์ ์ด๋ป๊ฒ ํ์ง๋ผ๋ ์๋ฌธ์ด ์๊ฒผ์๋๋ฐ
์๊ฐํด๋ณด๋ ๋ชจ๋ ๋งฅ์ค๊ฐ์ ์ญ์ ํ๋ ๊ฒ ์๋๋ผ indexํจ์๋ ๊ฐ์ฅ ๋จผ์ ๊ฒ์๋๋ ์ธ๋ฑ์ค ํ๋๋ง์ ๊ฒ์ํด ์ฃผ๋๊ฑฐ๋ผ
๋งฅ์ค๊ฐ ์ฌ๋ฌ๊ฐ ์์ผ๋ฉด ์ฒ์๊บผ๋ง ์ญ์ ํ๊ณ ๋ค์ max ํจ์๋ฅผ ํ๋ฉด ๋์ผํ ๊ฐ์ด์ง๋ง ๋ค๋ฅธ ๋งฅ์ค๊ฐ์ด ๊ฒ์๋๋ฏ๋ก ๋ฌธ์ ์์๋ค.
'Coding Test > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| Programmers] JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ (0) | 2023.04.12 |
|---|---|
| Programmers] n^2 ๋ฐฐ์ด ์๋ฅด๊ธฐ (0) | 2023.04.03 |
| Programmers] ๊ณต์ ์ฐ์ฑ (0) | 2023.04.03 |
| Programmers] ๋ง์น ํ๊ธฐ (0) | 2023.03.28 |
| Programmers] ๊ทค ๊ณ ๋ฅด๊ธฐ (0) | 2023.03.28 |
