코딩테스트 대비/프로그래머스

프로그래머스 LV 2 스킬트리

JellyApple 2023. 8. 16. 14:46

문제 유형 : ? 

문제 : 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 을 사용하면 그 값을 추출하고 나머지 값이 남아있음을 종종 까먹는다.. 잊지말자!