문제 설명
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 15
- babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.
- 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.
- 문자열은 알파벳 소문자로만 이루어져 있습니다.
입출력 예
babbling | result |
["aya", "yee", "u", "maa", "wyeoo"] | 1 |
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] | 3 |
입출력 예 설명
입출력 예 #1
- ["aya", "yee", "u", "maa", "wyeoo"]에서 발음할 수 있는 것은 "aya"뿐입니다. 따라서 1을 return합니다.
입출력 예 #2
- ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]에서 발음할 수 있는 것은 "aya" + "ye" = "ayaye", "ye", "ye" + "ma" + "woo" = "yemawoo"로 3개입니다. 따라서 3을 return합니다.
유의사항
- 네 가지를 붙여 만들 수 있는 발음 이외에는 어떤 발음도 할 수 없는 것으로 규정합니다. 예를 들어 "woowo"는 "woo"는 발음할 수 있지만 "wo"를 발음할 수 없기 때문에 할 수 없는 발음입니다.
※ 공지 - 2022년 10월 27일 문제 지문이 리뉴얼되었습니다. 기존에 제출한 코드가 통과하지 못할 수도 있습니다.
function solution(babbling) {
const word = ['aya', 'ye', 'woo', 'ma'];
let answer = 0;
for (let i = 0; i < babbling.length; i++){
for (let j of word) {
babbling[i] = babbling[i].replace(j, 'X')
}
babbling[i].split('X').join('') === '' ? answer += 1 : null
}
return answer
}
이중 for 문으로 해결할수있었다!
말할수있는 단어라고 표기된 것들은 word 배열에 담고 리턴해줄 결과값을 담을 변수를 선언했다.
문제를 해결하는 방법은 말할수있는 단어를 주어진 단어에서 제거하는 것이었다. 그래서 replace를 사용해 말할수있는 단어는 X로 치환했다. 그리고 X로만 이루어진 요소(말할수있는 단어로만 이루어진 요소)인지 판단해 개수를 증가시키고 최종적인 결과값을 리턴했다.
https://school.programmers.co.kr/learn/courses/30/lessons/120956
'study > Algorithm' 카테고리의 다른 글
[프로그래머스] 전국 대회 선발 고사 (0) | 2024.07.04 |
---|---|
[프로그래머스] 그림 확대 (0) | 2024.07.03 |
[프로그래머스] 정사각형으로 만들기 (0) | 2024.06.18 |
[프로그래머스] 무작위로 K개의 수 뽑기 (0) | 2024.05.28 |
[프로그래머스] 배열 만들기 2 (0) | 2024.05.20 |