https://school.programmers.co.kr/learn/courses/30/lessons/120956?language=python3
문제에 대한 이해:
4개의 문자열로 이루어진 리스트 E가 "aya", "ye", "woo", "ma"가 주어진다.
입력값 리스트 L이 주어졌을 때 L에서 E에 있는 문자열로'만' 이루어진 원소 l이 몇 개인지 구하라.
문제풀이:
재귀함수를 이용한다. l은 모두 E에 속한 원소들로만 이루어진 문자열이어야 한다.
따라서 1) 문자열 l의 0번 인덱스부터 'a', 'y', 'w', 'm'으로 시작해야한다.
나의 경우 E의 원소들의 0번째 인덱스가 담긴 ['a', 'y', 'w', 'm']를 따로 만들었다.
조건 1)을 만족하는 원소들은 찾고 시작 문자에 따라 문자열의 길이만큼 슬라이싱해서 일치여부를 가린다.
그리고 슬라이싱되고 남은 부분의 문자열을 가지고 위 과정을 반복한다.
예시코드:
def solution(babbling):
answer = 0
words = ["aya", "ye", "woo", "ma"]
start = ["a", "y", "w", "m"]
def find_word(x):
nonlocal answer
for i in range(len(start)):
start_index = x.find(start[i])
if start_index == 0:
if x[start_index:len(words[i])] == words[i]:
if x[len(words[i]):] != "":
find_word(x[len(words[i]):])
elif x[len(words[i]):] == "":
answer += 1
for x in babbling:
find_word(x)
return answer
'Algorithm > Accepted' 카테고리의 다른 글
[프로그래머스][점프와 순간 이동] DFS를 사용하지 않는 풀이 (0) | 2023.01.22 |
---|---|
[백준][14888][Python] 파이썬에서 음수 나눗셈에 대해, // (0) | 2023.01.12 |
[백준][14889] Combinations을 이용한 풀이 (0) | 2023.01.05 |
[코드업 문제풀이] 6098 : [기초-리스트] 성실한 개미 (0) | 2022.02.20 |
[코드업 문제풀이] 6097 : [기초-리스트] 설탕과자 뽑기 (0) | 2022.02.19 |
댓글