๋ฌธ์ ์ค๋ช
์ ํ ์คํฌ์ด๋ ์ด๋ค ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๋จผ์ ๋ฐฐ์์ผ ํ๋ ์คํฌ์ ๋ปํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ ํ ์คํฌ ์์๊ฐ ์คํํฌ → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ผ๋, ์ฌ๋๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์์ผ ํ๊ณ , ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ์คํํฌ๋ฅผ ๋ฐฐ์์ผ ํฉ๋๋ค.
์ ์์์ ์๋ ๋ค๋ฅธ ์คํฌ(ํ๋ง ๋ฑ)์ ์์์ ์๊ด์์ด ๋ฐฐ์ธ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์คํํฌ → ํ๋ง → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๊ฐ๋ฅํ์ง๋ง, ์ฌ๋ → ์คํํฌ๋ ๋ผ์ดํธ๋ ๋ณผํธ → ์คํํฌ → ํ๋ง → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ ํ ์คํฌ ์์ skill๊ณผ ์ ์ ๋ค์ด ๋ง๋ ์คํฌํธ๋ฆฌ๋ฅผ ๋ด์ ๋ฐฐ์ด skill_trees๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ ๊ฐ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
- ์คํฌ์ ์ํ๋ฒณ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ฉฐ, ๋ชจ๋ ๋ฌธ์์ด์ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํฌ ์์์ ์คํฌํธ๋ฆฌ๋ ๋ฌธ์์ด๋ก ํ๊ธฐํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, C → B → D ๋ผ๋ฉด "CBD"๋ก ํ๊ธฐํฉ๋๋ค
- ์ ํ ์คํฌ ์์ skill์ ๊ธธ์ด๋ 1 ์ด์ 26 ์ดํ์ด๋ฉฐ, ์คํฌ์ ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- skill_trees๋ ๊ธธ์ด 1 ์ด์ 20 ์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
- skill_trees์ ์์๋ ์คํฌ์ ๋ํ๋ด๋ ๋ฌธ์์ด์
๋๋ค.
- skill_trees์ ์์๋ ๊ธธ์ด๊ฐ 2 ์ด์ 26 ์ดํ์ธ ๋ฌธ์์ด์ด๋ฉฐ, ์คํฌ์ด ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
- "BACDE": B ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ C ์คํฌ์ ๋จผ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ์คํฌํธ๋ฆฝ๋๋ค.
- "CBADF": ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
- "AECB": ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
- "BDA": B ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ C ์คํฌ์ ๋จผ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
ํ์ด ์ฝ๋
from collections import deque
def solution(skill, skill_trees):
answer = 0
for tree in skill_trees:
queue = deque(skill)
whether = True
for s in tree:
if s not in queue:
continue
else:
if s == queue[0]:
queue.popleft()
else:
whether = False
break
if whether:
answer += 1
return answer
ํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด ํ์๋ค.
๋ฌธ์ ๋ฅผ ๋ถ์ํด๋ณด๋ฉด, ์คํฌํธ๋ฆฌ๋ ์์์๋ถํฐ ์ ํจ์ฑ์ ํ์ธํ๋ฏ๋ก, ํ๋ฅผ ์ด์ฉํด์ ๊ตฌํํ๋ค.
์ ์์ ์ธ ์คํฌํธ๋ฆฌ(skill)๋ฅผ ํ์ ๋ฃ๊ณ , ํ๋์ฉ ๋ฝ๋๋ค.
๊ทธ ๋ค์, for๋ฌธ์ ํตํด ๊ฒ์ฆ์ด ํ์ํ ์คํฌํธ๋ฆฌ๋ฅผ ํ๋ํ๋ ํ์ธํ๋ค.
skill์ ์ ์ฅ๋์ง ์์ ์คํฌ์ ๋ํด์๋ ์คํฌ ํธ๋ฆฌ์ ์ ํจ์ฑ์ ํ๋จํ ํ์๊ฐ ์์ด ๋๊ธด๋ค. (continue ๋ถ๋ถ)
ํ์ ๊ฐ์ฅ ์์ ์์๋ผ๋ฉด, ์ง๊ธ ๋ฐ๋ก ์คํฌ์ ๋ฐฐ์ธ ์ ์๋ค.
๋ฐ๋ผ์ ์คํฌ์ด ํ ๋ด๋ถ์ ์๋๋ฐ, ํ์ ๊ฐ์ฅ ์์ ์์ผ๋ฉด ๊ทธ๋๋ก ๋ฝ๊ณ (์ ํ ์คํฌ์ ๋ฐฐ์ด ๊ฒ)
ํ์ ๊ฐ์ฅ ์์ ์์ง ์๋ค๋ฉด ๋ค๋ฅธ ์ ํ์คํฌ์ ๋ฐฐ์ฐ์ง ์์๊ธฐ ๋๋ฌธ์ ์ ํจํ์ง ๋ชปํ ์คํฌํธ๋ฆฌ์ด๋ค.
'๐ ์ฝ๋ฉํ ์คํธ ๋๋น : PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ (level2, python) (0) | 2022.09.13 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฐฉ๋ฌธ ๊ธธ์ด (level2, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋ฐ๋จน๊ธฐ (level2, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] [3์ฐจ] n์ง์ ๊ฒ์ (level2, python) (0) | 2022.09.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ฑ๊ตฃ๊ธธ (level3, python) (0) | 2022.09.13 |