๋ฌธ์ ์ค๋ช
์ฃผ์ด์ง ํญ๊ณต๊ถ์ ๋ชจ๋ ์ด์ฉํ์ฌ ์ฌํ๊ฒฝ๋ก๋ฅผ ์ง๋ ค๊ณ ํฉ๋๋ค. ํญ์ "ICN" ๊ณตํญ์์ ์ถ๋ฐํฉ๋๋ค.
ํญ๊ณต๊ถ ์ ๋ณด๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด tickets๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ฐฉ๋ฌธํ๋ ๊ณตํญ ๊ฒฝ๋ก๋ฅผ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
- ๋ชจ๋ ๊ณตํญ์ ์ํ๋ฒณ ๋๋ฌธ์ 3๊ธ์๋ก ์ด๋ฃจ์ด์ง๋๋ค.
- ์ฃผ์ด์ง ๊ณตํญ ์๋ 3๊ฐ ์ด์ 10,000๊ฐ ์ดํ์ ๋๋ค.
- tickets์ ๊ฐ ํ [a, b]๋ a ๊ณตํญ์์ b ๊ณตํญ์ผ๋ก ๊ฐ๋ ํญ๊ณต๊ถ์ด ์๋ค๋ ์๋ฏธ์ ๋๋ค.
- ์ฃผ์ด์ง ํญ๊ณต๊ถ์ ๋ชจ๋ ์ฌ์ฉํด์ผ ํฉ๋๋ค.
- ๋ง์ผ ๊ฐ๋ฅํ ๊ฒฝ๋ก๊ฐ 2๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ์ํ๋ฒณ ์์๊ฐ ์์๋ ๊ฒฝ๋ก๋ฅผ return ํฉ๋๋ค.
- ๋ชจ๋ ๋์๋ฅผ ๋ฐฉ๋ฌธํ ์ ์๋ ๊ฒฝ์ฐ๋ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
from collections import defaultdict
def solution(tickets):
answer=[]
route = defaultdict(list)
for ticket in tickets :
route[ticket[0]].append(ticket[1])
for key in route.keys():
route[key].sort(reverse=True)
stack = ["ICN"]
while stack:
tmp = stack[-1]
if route[tmp] == []:
answer.append(stack.pop())
else:
stack.append(route[tmp].pop())
answer.reverse()
return answer
๋ฌธ์ ํต์ฌ
๋ฒ๋ฒ ๊ฑฐ๋ฆฐ ์ด์
1) ํ์ด์ฌ ๋ฌธ๋ฒ์ ๋ํ ๋ฌด์ง: ๋ด์ฉ๋ณด๋จ, ์ธ์ด ์์ฒด๋ฅผ ์ดํดํ์ง ๋ชปํด์ ์ค๋๊ฑธ๋ ธ๋ค.
2) ๋ฌธ์ ์์ ์ ์ํ ์ ๋๋ฒ์ค๋ฅผ ์ ๋๋ก ์ธ์ํ์ง ๋ชปํ๋ค.
์กฐ๊ฑด์ ์ฌ๋ฌ๊ฐ์ง ์์ง๋ง, ๋ฌธ์ ์ ํต์ฌ์ด ๋๋ ์กฐ๊ฑด์ ์ฃผ์ด์ง ํญ๊ณต๊ถ ๋ชจ๋ ์ด์ฉ ์ด๋ค.
์ด๋ ์๊ฐํ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ธ๊ฒฉํ ์ค์ฌ์ค๋ค.
๋ชจ๋ ํฐ์ผ์ ๋ค ์ด๋ค๋ ๋ง์
์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ์กฐ๊ฑด์ ๋ง๊ฒ ๋์จ๋ค๋ฉด, ์ฃผ์ด์ง ํญ๊ณต๊ถ์ ๋ชจ๋ ์ด์ฉํ์ฌ ๋ฆด๋ ์ด ์ฌํ์ด ๊ฐ๋ฅํ๋จ ๋ง์ด๋ค.
์ฆ, ๋์ฐฉ์ง๋ ๋ค์์ ์ถ๋ฐ์ง๊ฐ ๋๊ณ , ์ฒ์ ๋ ธ๋๋ก๋ง์ผ๋ก๋ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ ์ ์๋ค๋ ๋ง๊ณผ ๊ฐ๋ค.
์ธ๋ถ ์ฌํญ์ผ๋ก์จ A to B ํญ๊ณต๊ถ์ ๋ค์๊ณผ ๊ฐ์ด Dictionary ํํ๋ก ๋ฐ๊ฟ๋จ์ ๋
ICN : ["B"]
B: ["C"]
C: ["E", "ICN"]
D: ["C"]
E: ["D"]

ICN(ํ7) → B(ํ6) → C(ํ5) → ICN'(ํ1)
→ E(ํ4) → D(ํ3) → C(ํ2)
REVERSEํ๊ธฐ ์ : ICN' → C → D → E → C → B → ICN
์ ๋ต: ICN → B → C → E → D → C → ICN'
๋ ผ๋ฆฌ: ๋ชจ๋ ๋ ธ๋๋ค์ ์ฐ๊ฒฐ๋์ด ํํ๋ฅผ ๊ฐ์ ธ์ผ๋ง ํ๋ฏ๋ก, ๋์ด์ ๋ฐฉ๋ฌธํ ์ ์๋ ๋ ธ๋๋ ๊ฐ์ฅ ๋ง์ง๋ง ๋ฐฉ๋ฌธ์ง๊ฐ ๋ ๊ฒ์ด๋ฉฐ
์ด๋ฅผ n-1 ์ํค๋ฉด n์ ๊ฒฐ๊ตญ ์ถ๋ฐ์ง๊ฐ ๋ ๊ฒ์ด๋ค.
'๐ Python > ๐ค Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋ฐฑ์ค 1931๋ฒ ํ์์ค ๋ฐฐ์ (0) | 2021.10.01 |
|---|---|
| ํ์๋ฒ(Greedy): ์ฒด์ก๋ณต (0) | 2021.09.22 |
| ๋จ์ด๋ณํ: DFS, BFS ํ์ด (0) | 2021.08.26 |
| ๋คํธ์ํฌ DFS, BFSํ์ด (0) | 2021.08.25 |
| ํ๊ฒ๋๋ฒ: DFDํ์ด (0) | 2021.08.25 |