문제 설명
머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
접근한 방식
이번 문제에 대해 어떻게 접근하면 좋을지 고민해 봤을 때,
- 할 수 있는 옹알이 단어를 배열로 만들어 반복
- babbling 배열 내에서 연속된 발음이 있는지 확인
→ 연속된 발음이 있을 경우 해당 단어는 잘못된 단어로 간주 - 연속된 발음이 없을 경우 각 단어를 점 . 으로 대체
→ reduce 기능 사용해보기 - 모든 요소를 점으로 대체 후 결과 문자열이 점으로만 구성되어 있는지 확인하기
내 풀이
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
}
' 𝗔𝗣𝗣𝗟𝗘 > ALGORITHM' 카테고리의 다른 글
[내일배움캠프] 데일리 루틴(iOS_3회차) - 문자열 나누기 (0) | 2024.04.17 |
---|---|
[내일배움캠프] 데일리 루틴(iOS_3회차) - 숫자 짝꿍 (6) | 2024.04.15 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 기사단원의 무기 (5) | 2024.04.11 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 덧칠하기 (2) | 2024.04.09 |
[내일배움캠프] 데일리 루틴(iOS_3회차) - 카드 뭉치 (2) | 2024.03.20 |