๋ฌธ์ ์ค๋ช
์ ํ ์คํฌ์ด๋ ์ด๋ค ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ ๋จผ์ ๋ฐฐ์์ผ ํ๋ ์คํฌ์ ๋ปํฉ๋๋ค.
์๋ฅผ ๋ค์ด ์ ํ ์คํฌ ์์๊ฐ ์คํํฌ → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ผ๋, ์ฌ๋๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์์ผ ํ๊ณ , ๋ผ์ดํธ๋ ๋ณผํธ๋ฅผ ๋ฐฐ์ฐ๋ ค๋ฉด ๋จผ์ ์คํํฌ๋ฅผ ๋ฐฐ์์ผ ํฉ๋๋ค.
์ ์์์ ์๋ ๋ค๋ฅธ ์คํฌ(ํ๋ง ๋ฑ)์ ์์์ ์๊ด์์ด ๋ฐฐ์ธ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์คํํฌ → ํ๋ง → ๋ผ์ดํธ๋ ๋ณผํธ → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๊ฐ๋ฅํ์ง๋ง, ์ฌ๋ → ์คํํฌ๋ ๋ผ์ดํธ๋ ๋ณผํธ → ์คํํฌ → ํ๋ง → ์ฌ๋์ ๊ฐ์ ์คํฌํธ๋ฆฌ๋ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
์ ํ ์คํฌ ์์ skill๊ณผ ์ ์ ๋ค์ด ๋ง๋ ์คํฌํธ๋ฆฌ1๋ฅผ ๋ด์ ๋ฐฐ์ด skill_trees๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ ๊ฐ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- ์คํฌ์ ์ํ๋ฒณ ๋๋ฌธ์๋ก ํ๊ธฐํ๋ฉฐ, ๋ชจ๋ ๋ฌธ์์ด์ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์คํฌ ์์์ ์คํฌํธ๋ฆฌ๋ ๋ฌธ์์ด๋ก ํ๊ธฐํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, C → B → D ๋ผ๋ฉด "CBD"๋ก ํ๊ธฐํฉ๋๋ค
- ์ ํ ์คํฌ ์์ skill์ ๊ธธ์ด๋ 1 ์ด์ 26 ์ดํ์ด๋ฉฐ, ์คํฌ์ ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- skill_trees๋ ๊ธธ์ด 1 ์ด์ 20 ์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
- skill_trees์ ์์๋ ์คํฌ์ ๋ํ๋ด๋ ๋ฌธ์์ด์
๋๋ค.
- skill_trees์ ์์๋ ๊ธธ์ด๊ฐ 2 ์ด์ 26 ์ดํ์ธ ๋ฌธ์์ด์ด๋ฉฐ, ์คํฌ์ด ์ค๋ณตํด ์ฃผ์ด์ง์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
skill | skill_trees | return |
"CBD" | ["BACDE", "CBADF", "AECB", "BDA"] | 2 |
์ ์ถ๋ ฅ ์ ์ค๋ช
- "BACDE": B ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ C ์คํฌ์ ๋จผ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ์คํฌํธ๋ฆฝ๋๋ค.
- "CBADF": ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
- "AECB": ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
- "BDA": B ์คํฌ์ ๋ฐฐ์ฐ๊ธฐ ์ ์ C ์คํฌ์ ๋จผ์ ๋ฐฐ์์ผ ํฉ๋๋ค. ๋ถ๊ฐ๋ฅํ ์คํฌํธ๋ฆฌ์ ๋๋ค.
ํ์ด
- ์ด๊ฑฐ ๋๋ฌด ์ฝ์ง ์๋?
def solution(skill, skill_trees):
answer = 0
lst1 = list(skill)
lst2 = list(skill_trees)
for st in skill_trees:
lst2 = list(st)
lst2 = [i for i in lst2 if i in lst1]
is_passed = False
for i in range(len(lst2)):
if lst2[i] == lst1[i]:
is_passed = True
pass
else:
is_passed = False
break
if is_passed == True:
answer += 1
return answer
- ใ ใ ์ฝ์ง์์... ๋ญ๊ฐ ํ๋ฆฐ๊ฑฐ์ผ?
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ์คํจ (0.01ms, 10.1MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 5 ใ ์คํจ (0.07ms, 10.3MB)
ํ
์คํธ 6 ใ ์คํจ (0.01ms, 10.1MB)
ํ
์คํธ 7 ใ ์คํจ (0.03ms, 10.3MB)
ํ
์คํธ 8 ใ ์คํจ (0.02ms, 10.1MB)
ํ
์คํธ 9 ใ ์คํจ (0.03ms, 10.3MB)
ํ
์คํธ 10 ใ ์คํจ (0.02ms, 10.2MB)
ํ
์คํธ 11 ใ ์คํจ (0.02ms, 10.1MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.06ms, 10MB)
ํ
์คํธ 13 ใ ์คํจ (0.04ms, 10.2MB)
ํ
์คํธ 14 ใ ์คํจ (0.02ms, 10.1MB)
- ์! ์ค๊ฐ์ ๋ญ ์์ผ๋ฉด ์๋๋๊ฑฐ์ผ???
- CBD๊ฐ ๋ผ๋๊น, CB, BD๋ ๋๊ณ , CAB๋ ์๋๋๊ฑด๊ฐ? ์ฐธ๋... ใ ก.ใ ก`
def solution(skill, skill_trees):
answer = 0
lst1 = list(skill)
for s_tree in skill_trees:
s_list = list(s_tree)
lst2 = [(s_list[i],i) for i in range(len(s_list)) if s_list[i] in lst1]
lst2 = dict(lst2)
check = -1
for i in lst2.values():
if check == -1:
check = i
else:
if check+1 == i:
pass
else:
check = -1
break
if check != -1:
answer += 1
return answer
- ์๋์ผ... ๋ฌธ์ ์ฝ์ด๋ณด๋ฉด ๋งจ ์ฒ์ ์ง ๊ฑฐ ๋ง์. ๊ทผ๋ฐ ์ ์คํจ ๋จ์ง?
def solution(skill, skill_trees):
answer = 0
lst1 = list(skill)
print(lst1) # ์ด ์์๋๋ก ๋์ด ์๋์ง ์ฒดํฌํด์ผ ํจ
for skill_tree in skill_trees:
lst2 = list(skill_tree)
lst2 = [_ for _ in lst2 if _ in lst1]
is_passed = False
for i in range(len(lst2)):
if lst2[i] == lst1[i]: #๊ฐ์ผ๋ฉด?
print(lst1, lst2, i, "๋ฒ์งธ ๊ฐ์") # ๋น๊ต
is_passed = True
else:
print(lst1, lst2, i, "๋ฒ์งธ ๋ค๋ฆ") # ๋น๊ต
is_passed = False
break
if is_passed == True:
answer += 1
return answer
- ํน์ ์ด๋ ๊ฒ ํ๋ฉด ์์๊ฐ ํ์ด์ง๋ค๊ฑฐ๋ ํ๋?
- lst2 = list(skill_tree)
- lst2 = [_ for _ in lst2 if _ in lst1]
- ๊ทธ๋์ append๋ก ๋ฐ๊ฟ๋ณด์์ผ๋ ๋๊ฐ์ ์๋ฌ ๋ฐ์
- lst2 = []
- for l in skill_tree:
- if l in lst1:
- lst2.append(l)
- ์ ๋ญ์ง? ์ด์ํด ์ด์ํด ์ด์ํด.
- ๋ฆฌ์คํธ๊ฐ ๊ฐ์ ๋ฆฌ์คํธ๊ฐ ์๋๊ฑด๊ฐ?
- ์ข ๊ณ ์ณ๋ด. ๊ทผ๋ฐ ํต๊ณผ๋จ.
- ๋ญ์ผ? ์ ์ด๋???
- ๋ฌธ์์ด์ ๋ฆฌ์คํธ๋ก ๋ง๋ค๊ฑฐ๋ for๋ฌธ ๋๋ ค์ ๋ง๋ค๊ฑฐ๋ ๋๊ฐ๋ค.
- ๊ธฐ์กด ๋ฆฌ์คํธ๊ฐ ์๋ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ๋ง๋๋ ๊ฒ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด์๋ค.
- ๋ญ๊ฐ ๊ผฌ์ด๋๋ด?
def solution(skill, skill_trees):
answer = 0
lst1 = list(skill)
for skill_tree in skill_trees:
lst2 = [_ for _ in skill_tree if _ in lst1]
is_passed = True
for i in range(len(lst2)):
if lst2[i] != lst1[i]:
is_passed = False
break
if is_passed == True:
answer += 1
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.01ms, 10MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.03ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.02ms, 10.3MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.03ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.03ms, 10.1MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.02ms, 10.1MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.01ms, 10.2MB)
- ๊ณ ์์ ํ์ด
- ๋ฌธ์์ด์ ๋ฆฌ์คํธ๋ก ๋ฐ๊ฟ ํ์ ์์ด, ๊ทธ๋ฅ ๋ฌธ์์ด๋ก ํ์ธํด๋ ๋๋๋ณด๋ค.
def solution(skill, skill_trees):
answer = 0
for skills in skill_trees:
skill_list = list(skill)
for s in skills:
if s in skill:
if s != skill_list.pop(0):
break
else:
answer += 1
return answer
ํ
์คํธ 1 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.01ms, 10.4MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.01ms, 10.3MB)
- ์ด๊ฑฐ๋ ๋น์ท
def solution(skill,skill_tree):
answer=0
for i in skill_tree:
skillist=''
for z in i:
if z in skill:
skillist+=z
if skillist==skill[0:len(skillist)]:
answer+=1
return answer
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.00ms, 10.1MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.01ms, 10MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.01ms, 10.2MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 8 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 10 ใ ํต๊ณผ (0.01ms, 10MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.01ms, 10.1MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.02ms, 10.2MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.01ms, 10.3MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.01ms, 10.2MB)
- ์ ๊ทธ๋ฆฌ๊ณ ๋ด ์ฝ๋๊ฐ ํต๊ณผ ์๋ ์ด์ ๋ฅผ ์ ๋ชจ๋ฅด๊ฒ ๋ค. ์ด ๋ถ๋ถ์ธ๋ฐ...
- lst2 = list(skill_tree) #์คํฌํธ๋ฆฌ๋ฅผ ๋ฆฌ์คํธ๋ก ๋ณํํ ๊ฑธ ์ฐธ์กฐํ๋ lst2๋ ๋ณ์๋ฅผ ๋ง๋ฌ.
- lst2 = [_ for _ in lst2 if _ in lst1] #๊ทธ ๋ณ์ lst2์์ ์์๋ค ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ฒดํฌํด์ lst1์ ์๋ ๊ฑด ์ง์.
- lst2๊ฐ ์ฌ๋ฌ๋ฒ ์ฐธ์กฐ๋๋ฉด์ ๊ผฌ์ด๋ ๋ถ๋ถ? ํ์ค์ด ์ด ๋ถ๋ถ ๋๋ฌธ์ ์คํจ๊ฐ ๋๊ณ ์์๋ค.
- ์ ๊ทธ๋ฐ์ง๋ ๋ชฐ?๋ฃจ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.02.21 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค [1์ฐจ] ์บ์ (0) | 2023.02.20 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ฐฉ๋ฌธ ๊ธธ์ด (0) | 2023.02.20 |
ํ๋ก๊ทธ๋๋จธ์ค ํ ์ธ ํ์ฌ (0) | 2023.02.20 |
ํ๋ก๊ทธ๋๋จธ์ค ํผ์ ๋๊ธฐ์ ๋ฌ์ธ (0) | 2023.02.20 |