코딩 테스트 챌린지

[8월 코테 챌린지] 프로그래머스 :: (Lv0) 225개 (Lv1) 62개 (Lv2) 29개 (Lv3) 4개 // 누적 320개

  • -
728x90
반응형

2024/08/21

(Lv0) 225개 (Lv1) 62개 (Lv2) 29개 (Lv3) 4개 // 누적 320개


풀이한 문제

Lv1

  1. 옹알이 (2)
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 풀이

def solution(babbling):
    answer = 0
    can = ["aya", "ye", "woo","ma"]
    
    for i in babbling:
        if i in can:
            answer += 1
        else:
            st = 0 ; before = i[0]
            while True:
                if i[st:st+2] in can and i[st:st+2]!=before:
                    before = i[st:st+2]
                    st+=2
                elif i[st:st+3] in can and i[st:st+3]!=before:
                    before = i[st:st+3]
                    st += 3
                else:
                    break
                    
                if st == len(i):
                    answer+=1
                    break
    
    return answer

 

먼저 babblings에 기본 옹알이 단어가 있으면 answer += 1

길이가 긴 단어는 기본 옹알이 단어가 2, 3인 점을 이용해서 분리한다.

단어의 2~3어절까지가 can에 있다면 이 단어를 방금 말한 단어(before)로 지정한 뒤, 뒷부분도 반복적으로 수행한다.

만약 1개라도 없다면 while문은 멈추고, answer에 1은 더하지 않는다. 


미완성 문제

Lv2

  1. 구명보트
  2. 피로도
  3. 전화번호 목록
320x100
728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.