-
[💕 프로그래머스] 스킬트리Algorithm/1일 1코테 2020. 12. 15. 14:27반응형
Q.
programmers.co.kr/learn/courses/30/lessons/49993
A.
def solution(sinput, skill_trees): count = len(skill_trees) # 가능한 스킬트리의 갯수 for s in skill_trees: check = '' for v in s: if v in sinput: check += v if check[0] != sinput[0]: count -= 1 break if check not in sinput: count -= 1 return count
skill_trees 중에 가능한 스킬트리를 찾아내는 문제
1) count 변수 지정 - 불가능한 스킬트리를 만나면 -1씩 해줄 것이기 때문에 skill_trees의 총 갯수를 저장.
2) check는 sinput에 있는 변수를 누적해 줄 변수
ex. s가 BACDE일 때 sinput은 CBD => check에는 BCD가 저장됨.
3) s에서 하나씩 출력한 v가 sinput에 있을 때 check에 저장해주되, 만약 check의 첫번째와 sinput에 첫번째가 다르면,
check에는 두번째, 세번째,,, 등 첫번째 스킬이 아닌 다른 스킬이 저장되었다는 것이므로 count에서 -1을 해주고 멈춘다.
4) check[0]과 sinput[0]이 같더라도, sinput이 CBD일때 -> CD 등이 저장되었을 경우가 있기 때문에 -1
* 다른사람 풀이
def solution(skill, skill_trees): answer = 0 # count 변수 for skills in skill_trees: skill_list = list(skill) # 스킬순서 for s in skills: if s in skill: if s != skill_list.pop(0): #스킬순서와 skill에서 뽑은게 다르면 break # 멈춤 else: answer += 1 # 아니면 answer return answer
반응형'Algorithm > 1일 1코테' 카테고리의 다른 글
[💕 프로그래머스] 가장 큰 수 (0) 2020.12.18 [💕 프로그래머스] 구명보트 (0) 2020.12.16 [💕 프로그래머스] 최솟값 만들기 (0) 2020.12.15 [💕 프로그래머스] 숫자의 표현 (0) 2020.12.07 [💕 프로그래머스] 카펫 (0) 2020.12.07