- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/49993
Lv2문제이고, 스스로 푼 문제다!
처음에는 문제를 코드로 옮기는데 우왕좌왕했던 것 같다
문제에서 핵심은 skill의 모든 문자를 다 가지고 있지 않아도 skill과 겹치는 알파벳들을 나열했을 때 skill의 순서와 일치하는 skill_tree들만 세는 것이다
예제에서 0인덱스 문자열은 skill의 알파벳을 다 가지고 있지만, 순서가 맞지 않기 때문에 조건을 만족하지 못한다
그래서 skill_tree중에서 skill에 포함되는 모든 문자들을 모은 후 그것들이 skill의 순서와 같으면 count하고 아니라면 넘어간다
문제 해설
1. skill_trees에 있는 문자열 하나씩 탐색한다. 인덱스를 사용할 것이므로 list로 변환해준다
2. skill_tree에서 skill에 포함되는 문자인 경우 temp에 추가한다
3. temp의 길이만큼 skill을 잘랐을 때, 자른 리스트와 temp가 일치하면 숫자를 count하고, 아니면 넘어간다
4. 센 문자열의 갯수를 반환한다
- 정답 풀이 :
def solution(skill, skill_trees):
count = 0
skill = list(skill)
#skill에 해당하는 알파벳들의 skill_tree에서 인덱스를 순서대로 구한다
for skill_tree in skill_trees:
skill_tree = list(skill_tree)
temp = []
for i in range(len(skill_tree)):
if skill_tree[i] in skill:
temp.append(skill_tree[i])
if temp == skill[: len(temp)]:
count += 1
return count
'코딩테스트 > 기출' 카테고리의 다른 글
[Summer/Winter Coding(~2018) / 프로그래머스] 49994번 : 방문길이 (0) | 2022.09.26 |
---|---|
[2018 KAKAO BLIND RECRUITMENT / 프로그래머스] 17679번 : [1차] 프렌즈4블록 (0) | 2022.09.23 |
[연습문제 / 프로그래머스] 12913번 : 땅따먹기 (0) | 2022.09.21 |
[2018 KAKAO BLIND RECRUITMENT/ 프로그래머스] 17684번 : [3차] 압축 (0) | 2022.09.21 |
[2018 KAKAO BLIND RECRUITMENT/ 프로그래머스] : [3차] n진수 게임 (0) | 2022.09.21 |