1. ๋ฌธ์ ์ค๋ช
์์์๋ ๋งค๋ ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๊ฐ ์ด๋ฆฝ๋๋ค. ํด์ค์ง๋ค์ ์ ์๋ค์ด ์๊ธฐ ๋ฐ๋ก ์์ ์ ์๋ฅผ ์ถ์ํ ๋ ์ถ์ํ ์ ์์ ์ด๋ฆ์ ๋ถ๋ฆ ๋๋ค. ์๋ฅผ ๋ค์ด 1๋ฑ๋ถํฐ 3๋ฑ๊น์ง "mumu", "soe", "poe" ์ ์๋ค์ด ์์๋๋ก ๋ฌ๋ฆฌ๊ณ ์์ ๋, ํด์ค์ง์ด "soe"์ ์๋ฅผ ๋ถ๋ ๋ค๋ฉด 2๋ฑ์ธ "soe" ์ ์๊ฐ 1๋ฑ์ธ "mumu" ์ ์๋ฅผ ์ถ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ฆ "soe" ์ ์๊ฐ 1๋ฑ, "mumu" ์ ์๊ฐ 2๋ฑ์ผ๋ก ๋ฐ๋๋๋ค.
์ ์๋ค์ ์ด๋ฆ์ด 1๋ฑ๋ถํฐ ํ์ฌ ๋ฑ์ ์์๋๋ก ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด players์ ํด์ค์ง์ด ๋ถ๋ฅธ ์ด๋ฆ์ ๋ด์ ๋ฌธ์์ด ๋ฐฐ์ด callings๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฒฝ์ฃผ๊ฐ ๋๋ฌ์ ๋ ์ ์๋ค์ ์ด๋ฆ์ 1๋ฑ๋ถํฐ ๋ฑ์ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 5 ≤ players์ ๊ธธ์ด ≤ 50,000
- players[i]๋ i๋ฒ์งธ ์ ์์ ์ด๋ฆ์ ์๋ฏธํฉ๋๋ค.
- players์ ์์๋ค์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- players์๋ ์ค๋ณต๋ ๊ฐ์ด ๋ค์ด๊ฐ ์์ง ์์ต๋๋ค.
- 3 ≤ players[i]์ ๊ธธ์ด ≤ 10
- 2 ≤ callings์ ๊ธธ์ด ≤ 1,000,000
- callings๋ players์ ์์๋ค๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ๊ฒฝ์ฃผ ์งํ์ค 1๋ฑ์ธ ์ ์์ ์ด๋ฆ์ ๋ถ๋ฆฌ์ง ์์ต๋๋ค.
2. ์ถ๋ ฅ ์์

3. ๋ฌธ์ ๋ต์
def solution(players, callings):
# ํ์ฌ ๋ฑ์
rank = {name: i for i, name in enumerate(players)}
for name in callings:
r = rank[name] # ์ด๋ฆ ๋ถ๋ฆฐ ์ฌ๋ ๋ฑ์
front = players[r-1] # ์์ฌ๋ ์ด๋ฆ
players[r], players[r-1] = players[r-1], players[r]
rank[name] -= 1 # ์ด๋ฆ ๋ถ๋ฆฐ ์ฌ๋ ๋ฑ์ ์์ผ๋ก ์ด๋
rank[front] += 1 # ์์ฌ๋ ๋ฑ์ ๋ค๋ก ์ด๋
return players
# ์ด๋ฆ ๋ถ๋ฆด ๋๋ง๋ค ์ธ๋ฑ์ค ์์น ์ฐพ๊ณ ๊ตํํ๋ฉด ํ
์คํธ ์ผ์ด์ค๋ ํต๊ณผํ์ง๋ง
# ํ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ค ๋นํจ์จ์ ์ด๋ฏ๋ก, ํ์ฌ ๋ฑ์๋ฅผ ๋์
๋๋ฆฌ ํํ๋ก ๊ตฌํํด์ผ ํจ'๐ฅ๏ธ ์ฝ๋ฉํ ์คํธ > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] ๊ณต์ ์ฐ์ฑ (0) | 2026.03.09 |
|---|---|
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] ์ถ์ต ์ ์ (0) | 2026.03.09 |
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] [PCCE ๊ธฐ์ถ๋ฌธ์ ] 10๋ฒ / ๋ฐ์ดํฐ ๋ถ์ (1) | 2026.03.01 |
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] [PCCP ๊ธฐ์ถ๋ฌธ์ ] 1๋ฒ / ๋ถ๋ ๊ฐ๊ธฐ (0) | 2026.03.01 |
| [ํ๋ก๊ทธ๋๋จธ์ค] [Python] ๋์๋ฌธ์ ๋ฐ๊ฟ์ ์ถ๋ ฅํ๊ธฐ (0) | 2026.03.01 |