1. ๋ฌธ์ ์์ฝ ๋ฐ ๋ก์ง
ํน์ ํ๋ก์ธ์ค๊ฐ ์คํ๋ ์ฐจ๋ก์ผ ๋, ํ์ ์ฐ์ ์์๊ฐ ๋ ๋์ ํ๋ก์ธ์ค๊ฐ ์๋ค๋ฉด ํ์ฌ ํ๋ก์ธ์ค๋ฅผ ๋ค์ ํ์ ๋์ผ๋ก ๋ณด๋ด๋ ๋ฌธ์ ์ด๋ค.
- Queue ํ์ฉ:
deque๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๋ฉฐ, ์ธ๋ฑ์ค์ ์ฐ์ ์์๋ฅผ ํํ๋ก ์ ์ฅํ๋ค. - ์ฐ์ ์์ ๋น๊ต: ํ์ฌ ๊บผ๋ธ ํ๋ก์ธ์ค๋ณด๋ค ๋์ ์ฐ์ ์์๊ฐ ํ๋๋ผ๋ ์๋์ง ๋งค๋ฒ ํ์ธํ๋ค.
- ์คํ ์์: ๋ ๋์ ์ฐ์ ์์๊ฐ ์๋ค๋ฉด ํ๋ก์ธ์ค๋ฅผ ์คํ์ํค๊ณ ์นด์ดํธ๋ฅผ ์ฌ๋ฆฐ๋ค.
2. ๋ฆฌํฉํ ๋ง ์ฝ๋ (Python)
from collections import deque
def solution(priorities, location):
# 1. ์ธ๋ฑ์ค์ ์ฐ์ ์์๋ฅผ ํ์ ๋ด๊ธฐ
queue = deque(enumerate(priorities))
answer = 0
while queue:
idx, priority = queue.popleft()
# 2. any()๋ฅผ ํ์ฉํด ๋ ๋์ ์ฐ์ ์์๊ฐ ์๋์ง ํ์ธ (Short-circuit)
if any(priority < p for _, p in queue):
queue.append((idx, priority))
else:
# 3. ์คํ ์ฒ๋ฆฌ ๋ฐ ์นด์ดํธ ์ฆ๊ฐ
answer += 1
# ์ฐพ๊ณ ์ ํ๋ ํ๋ก์ธ์ค๋ผ๋ฉด ๊ฒฐ๊ณผ ๋ฐํ
if idx == location:
return answer
3. ๐ ๋ฆฌํฉํ ๋ง ํฌ์ธํธ: ์ ๋ ์ข์์ก๋?
โ O(n) ํ์ ๋น์ฉ ์ ๊ฑฐ์ any()์ ํ์ฉ
๊ธฐ์กด์ if (index, current) not in queue ๋ฐฉ์์ ๋งค ๋ฐ๋ณต๋ง๋ค ํ ์ ์ฒด๋ฅผ ์ํํ๋ฉฐ ๊ฐ์ ์ฐพ์์ผ ํ๋ฏ๋ก ์ฑ๋ฅ์ ๋ถ๋ฆฌํ๋ค. ๋ฆฌํฉํ ๋ง์์๋ any()๋ฅผ ๋์
ํ์ฌ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์ฆ์ ํ์์ ์ข
๋ฃํ๋๋ก ๊ฐ์ ํ๋ค. ๋ณ๋์ Flag ๋ณ์ ์์ด๋ ๊ฐ๋
์ฑ ์๊ฒ ๋ถ๊ธฐ ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํด์ก๋ค.
โ ํจ์จ์ ์ธ ๊ฒฐ๊ณผ ๋ฐํ
์ด์ ์๋ ๋ชจ๋ ์คํ ์์๋ฅผ answer ๋ฆฌ์คํธ์ ๋ด์ ๋ค ๋ค์ ์ธ๋ฑ์ค๋ฅผ ์ฐพ๋ ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์ ๊ฑฐ์ณค๋ค. ๊ฐ์ ๋ ์ฝ๋์์๋ ์นด์ดํฐ ๋ณ์๋ฅผ ์ฌ์ฉํด ํ๋ก์ธ์ค๊ฐ ์คํ๋ ๋๋ง๋ค ์ฆ์ ์ฒดํฌํ๊ณ , location์ ๋๋ฌํ๋ฉด ๋ฐ๋ก return ํ๋๋ก ์ต์ ํํ๋ค. ๋ถํ์ํ ๋ฆฌ์คํธ ์์ฑ์ ๋ง๊ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ ์ ์์๋ค.
4. โ๏ธ ํ๊ณ : ์ง๊ด๊ณผ ์ฑ๋ฅ ์ฌ์ด
๋ฌธ์ ๋ฅผ ์ฒ์ ํ ๋๋ ๋ก์ง์ ์๊ฐํํ๊ธฐ ์ํด ๋ฆฌ์คํธ์ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ ๋ฐฉ์์ ํํ์ง๋ง, ๋ฆฌํฉํ ๋ง์ ํตํด ์ธ์ด์ ๋ด์ฅ ํจ์(any)์ ์กฐ๊ธฐ ๋ฐํ(Early Return)์ ์ ์ ํ ์์ด ์ฐ๋ ๊ฒ์ด ์ผ๋ง๋ ์ฝ๋๋ฅผ ๊น๋ํ๊ฒ ๋ง๋๋์ง ์ฒด๊ฐํ๋ค.
ํนํ "๋ด๊ฐ ์ฐพ๊ณ ์ ํ๋ ์ ๋ณด๊ฐ ๋ฌด์์ธ๊ฐ"์ ์ง์คํ๋ ๋ถํ์ํ ์ ์ฒด ์ํ๋ ์ถ๊ฐ ์๋ฃ๊ตฌ์กฐ ์ ์ธ์ ํฌ๊ฒ ์ค์ผ ์ ์์๋ค.
'๐งฉ Algorithm > [Programmers] ์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ KIT' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Programmers/์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ KIT] ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2026.04.03 |
|---|---|
| [Programmers/์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ KIT] ๊ธฐ๋ฅ๊ฐ๋ฐ (0) | 2026.04.01 |
| [Programmers/์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ KIT] ๊ฐ์ ์ซ์๋ ์ซ์ด (0) | 2026.03.31 |
| [Programmers/์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ KIT] ๋ฒ ์คํธ์จ๋ฒ (0) | 2026.03.30 |
| [Programmers/์๊ณ ๋ฆฌ์ฆ ๊ณ ๋์ KIT] ์์ (0) | 2026.03.21 |