Last active
June 4, 2020 01:09
-
-
Save DongguemYoo/fd8b7e93eee3dd5fc6a20c5b88715e0a to your computer and use it in GitHub Desktop.
코딩테스트 연습 스킬트리.py ★★★★★★(멋짐점수)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//굉장히 단순하게 품 | |
//방식 | |
//skill = CBD | |
//skill_tree = BACDE | |
1.skill_tree에서 skill에 포함되어 있는 문자열을 스킬의 인덱스로 변환한다. | |
ex) BACDE -> 1A0DE | |
2.숫자를 제외한 문자열을 제거한다 | |
ex)1A0DE -> 10 | |
3.길이가 0이라면 가능한 스킬트리이다. | |
4.for문을 0부터 돌려서 인덱스를 비교하여 같지 않으면 break | |
//다른사람 풀이 레전드 있음;; | |
//for문에 break를 달아서 else를 달았음;; | |
//break를 타지 않으면 else이다...와우..지렷다진짜... | |
import re | |
def solution(skill, skill_trees): | |
answer = 0 | |
for tree in skill_trees: | |
i =0 | |
for i in range(i,len(skill)): | |
tree = tree.replace(skill[i],str(i)) | |
tree = re.findall("\d",tree) | |
if len(tree) ==0: | |
answer+=1 | |
continue | |
a = 0; | |
able = False | |
for a in range(0,len(tree)): | |
if str(a) == tree[a]: | |
able = True | |
else: | |
able = False | |
break | |
if able: | |
answer+=1 | |
return answer | |
//////////////////////////////////////////다른사람풀이//////////////////////////////////////////다른사람풀이 | |
def solution(skill, skill_trees): | |
answer = 0 | |
for skills in skill_trees: | |
skill_list = list(skill) //리스트에 넣어서 pop을 할 생각을함 | |
//pop을 하는 이유 | |
CBD라고 치면 Pop을 하면 C,B,D 순으로 skill이 나오게 된다 | |
이 순서와 맞지 않으면 안되는 스킬트리이므로 완벽하다. | |
skills에 skill이 하나도 있지 않거나 | |
break를 타지 않고 모두 pop에 맞게 나왔다면 | |
else를 타서 정답에 추가한다...와우... | |
for s in skills: | |
if s in skill: | |
if s != skill_list.pop(0): | |
break | |
else: | |
answer += 1 | |
return answer | |
//////////////////////////////////////////다른사람풀이//////////////////////////////////////////다른사람풀이 | |
배운점 | |
pop이라는 자료구조를 좀 이용하자...인덱스를 순서대로 비교할 일이 생긴다면 pop을 활용하여 보자!!! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment