문제
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
입출력 예
babbling | result |
["aya", "yee", "u", "maa", "wyeoo"] | 1 |
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] | 3 |
1. 주어진 발음이랑 같으면 "!"로 replace
for(int i=0; i<babbling.length; i++){
for(int j=0; j<inventory.length; j++){
if(babbling[i].contains(inventory[j])){
babbling[i] = babbling[i].replace(inventory[j], "!");
}
}
}
babbing배열의 원소 안에 inventory가 속해있는지를 확인합니다.
만약 속해있다면 이를 "!"로 바꿔줍니다.
2. babbling[i]가 "!"로만 이루어졌는지 확인
for(int i=0; i<babbling.length; i++){
boolean allZ = true;
for(char c:babbling[i].toCharArray()){
if(c != '!'){
allZ = false;
break;
}
}
babbing의 원소가 전부 "!"로 이루어졌는지를 판단합니다.
만약 다른 알파벳이 끼어있다면 ( 예. "uuuma" → "uuu!" )
allZ를 false로 바꾸고, 반복문을 탈출합니다.
3. 전부 "!"라면 answer++
if(allZ){
answer++;
}
}
만약 allZ가 true라면 ( 예. "yemawoo" → "!!!" )
answer++ 해주면 됩니다.
코드
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] inventory = {"aya", "ye", "woo", "ma"};
for(int i=0; i<babbling.length; i++){
for(int j=0; j<inventory.length; j++){
if(babbling[i].contains(inventory[j])){
babbling[i] = babbling[i].replace(inventory[j], "!");
}
}
}
for(int i=0; i<babbling.length; i++){
boolean allZ = true;
for(char c:babbling[i].toCharArray()){
if(c != '!'){
allZ = false;
break;
}
}
if(allZ){
answer++;
}
}
return answer;
}
}
제가 작성한 코드는 아래 git에서도 확인하실 수 있습니다.
https://github.com/eonwy/programmers
GitHub - eonwy/programmers: 🔎 coding-test (programmers) 🔍
🔎 coding-test (programmers) 🔍. Contribute to eonwy/programmers development by creating an account on GitHub.
github.com
'🫧 코테 : CodingTest' 카테고리의 다른 글
[프로그래머스] Java : A로 B 만들기 (0) | 2024.05.20 |
---|---|
[프로그래머스] Java : 이진수 더하기 (1) | 2024.05.20 |
[프로그래머스] Java : 등수 매기기 (2) | 2024.04.17 |
[프로그래머스] Java : 특이한 정렬 (0) | 2024.04.17 |
[프로그래머스] Java : 유한소수 판별하기 (2) | 2024.04.15 |