프로그래머스 LV 2 스킬트리
문제 유형 : ?
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/49993
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 풀이 : skill 을 리스트로 만들어주어서 그 값 하나하나를 반복문으로 비교 하는 방식을 거쳤다.
2. 풀이 방식
1) skill을 list화 해주었다. 그 후 skill_trees 안에 들어가 있는 스킬 트리를 반복문을 돌려주어 하나씩 비교했다.
2) 그 후 skill_trees 안을 도는 i에서 또 하나의 반복문을 돌아 하나씩 살펴보았다.
ex) i = ["BACDE"] , s = "B" , "A" , "C" , "D" , "E" 차례로 순회
3) 만약 s가 skill 안에 있을 때 (C,B,D) skill_list에 첫 번째 값과 비교한다.
= .pop() 을 사용했는데 예를 들어 skill = CBD -> skill_list = ["C" , "B" , "D" ]
skill_list.pop(0) 을 사용해서 C를 추출하고 skill_list = ["B" , "D" ] 로 다음 반복문 수행
4) 만약 이 C와 s가 다르다면 순서가 잘못된 것이므로 빠져나가고 중단 , 다음 스킬트리 탐색
5) 같다면 answer +=1 해준다.
3. 최종 코드
4. 느낀점
: 처음 배운 개념이 for - else 문이다. for문이 중간에 break 등으로 멈추지 않고 무사히 수행 됐다면
else 문을 수행한다.
: pop 을 사용하면 그 값을 추출하고 나머지 값이 남아있음을 종종 까먹는다.. 잊지말자!