본문 바로가기
🫧 코테 : CodingTest

[프로그래머스] Java : 옹알이(1)

by 예옹이 2024. 4. 18.

 

문제

머쓱이는 태어난 지 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