✔ 옹알이 (2)
문제 분석하기
단어를 하나씩 살펴보며 단어 안에 발음할 수 있는 말이 있을 경우 공백으로 바꿔가며 모두 발음할 수 있는지 확인
이때 바로 공백으로 바꿀 경우 문제가 발생할 수 있으므로 " "으로 변경한 후, 마지막에 ""으로 변경
예) yayae
ye로 변경될 경우 발음할 수 없지만 가능한 것이 되므로 y e로 변경
손으로 풀어보기
- 단어를 하나씩 살펴보며 연속해서 같은 발음이 있을 경우 패스
- 연속해서 발음이 없을 경우 하나의 단어 안에 발음할 수 있는 말이 들어가는지 확인
- "aya", "ye", "woo", "ma"가 존재할 경우 " "으로 변경
- 모든 발음에 대해 확인한 후 " "을 ""로 변경
- 이때 단어의 길이가 0이라면 단어를 발음할 수 있으므로 발음할 수 있는 단어의 개수 증가
- 발음할 수 있는 단어의 개수 반환
슈도코드 작성하기
babbling(문자열 배열)
answer(발음할 수 있는 단어의 개수)
for(i -> babbling의 길이만큼) {
if(연속 발음이라면) {
발음이 불가능하므로 통과
}
단어 안에 aya, ye, woo, ma가 있을 경우 " "로 치환
단어 안에 " "가 있을 경우 ""로 치환
if(단어의 길이가 0이라면) {
answer 증가
}
}
answer 반환
코드 구현하기
/**
* 133499) 옹알이_(2)
*/
public class L060_133499 {
// babbling(문자열 배열)
public int solution(String[] babbling) {
// answer(발음할 수 있는 단어의 개수)
int answer = 0;
for (int i = 0; i < babbling.length; i++) {
// 연속 발음이라면
if (babbling[i].contains("ayaaya") ||
babbling[i].contains("yeye") ||
babbling[i].contains("woowoo") ||
babbling[i].contains("mama"))
// 발음이 불가능하므로 통과
continue;
// 단어 안에 aya, ye, woo, ma가 있을 경우 " "로 치환
babbling[i] = babbling[i].replace("aya", " ");
babbling[i] = babbling[i].replace("ye", " ");
babbling[i] = babbling[i].replace("woo", " ");
babbling[i] = babbling[i].replace("ma", " ");
// 단어 안에 " "가 있을 경우 ""로 치환
babbling[i] = babbling[i].replaceAll(" ", "");
// 단어의 길이가 0이라면
if (babbling[i].length() == 0)
// answer 증가
answer++;
}
// answer 반환
return answer;
}
// 테스트 케이스
public static void main(String[] args) {
L060_133499 solution = new L060_133499();
String[] babbling = { "aya", "yee", "u", "maa" };
int result = solution.solution(babbling);
System.out.println(result);
}
}
'Coding Test > Java 알고리즘 실전' 카테고리의 다른 글
[131705] 삼총사 (0) | 2023.12.15 |
---|---|
[132267] 콜라 문제 (0) | 2023.12.14 |
[133502] 햄버거 만들기 (0) | 2023.12.12 |
[134240] 푸드 파이트 대회 (0) | 2023.12.12 |
[135808] 과일 장수 (0) | 2023.12.11 |