100세까지 코딩
[프로그래머스] Lv0.옹알이 본문
문제 설명
풀기 전 생각
- 말할 수 있는 단어를 배열에 넣기
- babbling을 for문 돌면서 말할 수 있는 단어들이 포함되면 replace로 지우기
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] say = {"aya", "ye", "woo", "ma"}; // 말할 수 있는 단어들
for (int i = 0; i < babbling.length; i++) { //입력된 단어들 순회
for (int j = 0; j < say.length; j++) {
if (babbling[i].contains(say[j])) { // 말할 수 있는 단어들 하나씩 검사
babbling[i] = babbling[i].replace(say[j], ""); // 포함되면 공백으로 바꾸기
}
}
}
for (int i = 0; i < babbling.length; i++) {
if (babbling[i].equals("")){ // 마지막 남은게 공백이면 말할 수 있는 단어
answer++;
}
}
return answer;
}
}
오류 및 개선
- 첫 번째 입출력 예에서 'wyeoo'를 보면 ye를 공백으로 지워버리면 woo가 되어 말할 수 있는 단어가 된다
- 그러나, 'wyeoo'는 발음이 불가능한 단어이다. 그러므로 공백이 아닌 다른 단어로 replace 해야 한다
- 또한, 제일 마지막 for문은 위에 for문과 같기 때문에 한 곳에 넣는 게 깔끔하다
최종
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] say = {"aya", "ye", "woo", "ma"}; // 말할 수 있는 단어들
for (int i = 0; i < babbling.length; i++) { //입력된 단어들 순회
for (int j = 0; j < say.length; j++) {
if (babbling[i].contains(say[j])) { // 말할 수 있는 단어들 하나씩 검사
babbling[i] = babbling[i].replace(say[j], "X"); // 포함되면 X로 바꾸기
}
}
babbling[i] = babbling[i].replaceAll("X",""); // X표시를 공백으로 모두 바꾸기
if (babbling[i].equals("")){ // 마지막 남은게 공백이면 말할 수 있는 단어
answer++;
}
}
return answer;
}
}
'코딩테스트 > 자바' 카테고리의 다른 글
[프로그래머스] Lv0.연속된 수의 합 (0) | 2023.08.13 |
---|---|
[프로그래머스] Lv0.분수의 덧셈 (0) | 2023.08.13 |
[프로그래머스] Lv0.겹치는 선분의 길이 (0) | 2023.08.12 |
[프로그래머스] Lv0.평행 (0) | 2023.08.09 |
[프로그래머스] Lv0.다음에 올 숫자 (0) | 2023.08.08 |