본문 바로가기

 𝗔𝗣𝗣𝗟𝗘/ALGORITHM

[내일배움캠프] 데일리 루틴(iOS_3회차) - 옹알이 (2)

 

이미지를 클릭하면 코딩테스트 페이지로 이동합니다

 

 

 

문제 설명

 

머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

 

 

접근한 방식

 

이번 문제에 대해 어떻게 접근하면 좋을지 고민해 봤을 때,

 

  1. 할 수 있는 옹알이 단어를 배열로 만들어 반복 
  2. babbling 배열 내에서 연속된 발음이 있는지 확인
     연속된 발음이 있을 경우 해당 단어는 잘못된 단어로 간주
  3. 연속된 발음이 없을 경우 각 단어를 점 . 으로 대체
    reduce 기능 사용해보기
  4. 모든 요소를 점으로 대체 후 결과 문자열이 점으로만 구성되어 있는지 확인하기

 

 

내 풀이

 

import Foundation

func solution(_ babbling: [String]) -> Int {
    let array = ["aya", "ye", "woo", "ma"]
    var result = 0

    for wordBabbling in babbling {
        var isBabbling = true
        
        for i in array {
            if wordBabbling.contains(i + i) {
                isBabbling = false
                break
            }            
        }
        
        if isBabbling {
            let notBabbling = array.reduce(wordBabbling) { 
                $0.replacingOccurrences(of: $1, with: ".") 
            }
            if notBabbling.allSatisfy({ $0 == "." }) {
                result += 1
            }
        }
    }

    return result
}

 

 

 

 

 

 

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31