문제
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다.
조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다.
문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 15
- babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.
- 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.
- 문자열은 알파벳 소문자로만 이루어져 있습니다.
풀이 방법
- "aya", "ye", "woo", "ma"의 문자열 배열을 하나 선언 ex) val words
- 매개 변수로 받은 babbling의 각 인덱스 별 문자열(A)을 words의 각 인덱스 별 문자열(B)과 비교
- 만일 A에 B가 포함되어 있는지
- 포함되어 있다면 A에서의 B를 "/"로 변경
- 마지막 A에서 "/"를 없애주었을 경우, A가 Null 또는 Empty일 경우 answer + 1
- 같은 방법으로 그 다음 A 진행
코드
개인적인 풀이 코드
class Solution {
fun solution(babbling: Array<String>): Int {
var answer: Int = 0
val words = arrayListOf("aya", "ye", "woo", "ma")
for(i in babbling)
{
var test: String = i
for(word in words)
{
if(i.contains(word))
{
test = test.replace(word.toRegex(), "/")
}
}
test = test.replace("/".toRegex(), "")
if(test.isNullOrEmpty()) answer += 1
}
return answer
}
}