๐กsolutions )
โ ๊ณต๋ฐฑ์ด ์๋ ๋ฌธ์์ด์ ํ๋์ฉ ๋์ด์ ๋ฆฌ์คํธ ์์๋ก ๋ง๋ค ๋๋ list(str) ์ฌ์ฉํ๊ธฐ str = "abc", list(str) = ["a", "b", "c"] (๋จ, ๊ณต๋ฐฑ ์์ผ๋ฉด split ์ฌ์ฉ)
โ skill์ ์๋ ๊ฒ๋ค๋ง ๋ชจ์์ tmp์ ๋ด๊ณ skill๋ฆฌ์คํธ์ tmp๋ฆฌ์คํธ ๊ฐ ๋น๊ตํ๊ธฐ
โ ๊ธธ์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ฐ๋ก cnt + 1, ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์ฒซ ๋ฒ์งธ๋ถํฐ ๊ฐ์ ๋น๊ตํ๊ธฐ -> ๋ฌธ์ ํผ ํ์ skill ๋ฆฌ์คํธ์ pop(0)๊ฐ ํ๊ณ ๋ง ๋น๊ตํ๋ฉด ๋๋ค๋ ๊ฑธ ์์๋ค. (๋งจ ์์ ์ ํํ์ง ์๋๋ค๋ ๊ฑด, ๊ฒฐ๊ตญ ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ๊ฐ ์๋๊ธฐ ๋๋ฌธ)
๐ซcode )
def solution(skill, skill_trees):
skill = list(skill)
cnt = 0
for st in skill_trees:
st = list(st)
tmp = []
for i in st:
if i in skill:
tmp.append(i)
if len(tmp) == len(skill):
if tmp == skill:
cnt += 1
else:
for i in range(len(tmp)):
if skill[i] != tmp[i]:
break
else:
cnt += 1
return cnt
๐ description )
๋ฌธ์ ์ถ์ฒ https://programmers.co.kr/learn/courses/30/lessons/49993
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์คํฌํธ๋ฆฌ
programmers.co.kr
์คํฌํธ๋ฆฌ
๋ฌธ์ ์ค๋ช
์ ํ ์คํฌ์ด๋ ์ด๋ค ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๋จผ์ ๋ฐฐ์์ผ ํ๋ ์คํฌ์ ๋ปํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ ํ ์คํฌ ์์๊ฐ ์คํํฌ → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ผ๋, ์ฌ๋๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์์ผ ํ๊ณ , ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ์คํํฌ๋ฅผ ๋ฐฐ์์ผ ํฉ๋๋ค.
์ ์์์ ์๋ ๋ค๋ฅธ ์คํฌ(ํ๋ง ๋ฑ)์ ์์์ ์๊ด์์ด ๋ฐฐ์ธ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์คํํฌ → ํ๋ง → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๊ฐ๋ฅํ์ง๋ง, ์ฌ๋ → ์คํํฌ๋ ๋ผ์ดํธ๋ ๋ณผํธ → ์คํํฌ → ํ๋ง → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ ํ ์คํฌ ์์ skill๊ณผ ์ ์ ๋ค์ด ๋ง๋ ์คํฌํธ๋ฆฌ1๋ฅผ ๋ด์ ๋ฐฐ์ด skill_trees๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ ๊ฐ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
-
์คํฌ์ ์ํ๋ฒณ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ฉฐ, ๋ชจ๋ ๋ฌธ์์ด์ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
-
์คํฌ ์์์ ์คํฌํธ๋ฆฌ๋ ๋ฌธ์์ด๋ก ํ๊ธฐํฉ๋๋ค.
-
์๋ฅผ ๋ค์ด, C → B → D ๋ผ๋ฉด CBD๋ก ํ๊ธฐํฉ๋๋ค
-
-
์ ํ ์คํฌ ์์ skill์ ๊ธธ์ด๋ 1 ์ด์ 26 ์ดํ์ด๋ฉฐ, ์คํฌ์ ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
-
skill_trees๋ ๊ธธ์ด 1 ์ด์ 20 ์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
-
skill_trees์ ์์๋ ์คํฌ์ ๋ํ๋ด๋ ๋ฌธ์์ด์ ๋๋ค.
-
skill_trees์ ์์๋ ๊ธธ์ด๊ฐ 2 ์ด์ 26 ์ดํ์ธ ๋ฌธ์์ด์ด๋ฉฐ, ์คํฌ์ด ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
-
์ ์ถ๋ ฅ ์
skillskill_treesreturn
"CBD" |
["BACDE", "CBADF", "AECB", "BDA"] |
2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
-
BACDE: B ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ C ์คํฌ์ ๋จผ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ์คํฌํธ๋ฆฝ๋๋ค.
-
CBADF: ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
-
AECB: ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
-
BDA: B ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ C ์คํฌ์ ๋จผ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.