문제
https://school.programmers.co.kr/learn/courses/30/lessons/133499
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
문제를 보자마자 2가지가 떠올랐다.
1. 모든 경우의 수을 리스트에 담아서 그 옹알이 케이스 유무를 체크하는 방법과 문자열 인덱싱을 이용하는 방법
2. 문자열 인덱싱을 이용하여 처리하는 방법
1번 케이스 같은 경우에는 옹알이 케이스를 모두 구하기에는 아마 공간복잡도의 조건에서 위배될 것 같아서 2번째 방법을 고려하여 진행하였다.
여기 주의해야 할 점은 같은 옹알이는 연속으로 하지 못한다는 점이다. 따라서 글자를 순회하면서 전에 있던 단어랑 비교해서 같은 옹알이를 2번 하는지 체크하여야 한다.
해당 부분을 소스코드로 구현하면 다음과 같다.
from itertools import permutations as pt
def solution(babbling):
case = ["aya", "ye", "woo", "ma"]
cnt = 0
for word in babbling:
complete_word = ""
curr_word = ""
par = ""
for char in word:
par += char
if par in case and par != curr_word:
complete_word += par
curr_word = par
par = ""
if word == complete_word:
cnt += 1
return cnt
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스 LV1 신규 아이디 추천 (0) | 2023.05.11 |
---|---|
프로그래머스 LV1 과일 장수 (0) | 2023.05.11 |
프로그래머스 LV1 키패드 누르기 (0) | 2023.05.05 |
프로그래머스 LV1 체육복 (0) | 2023.05.05 |
프로그래머스 LV1 두 개 뽑아서 더하기 (0) | 2023.05.04 |