프로그래머스 Lv.0 옹알이(1)

머쓱이는 태어난 지 6개월 된 조카를 돌보고 있다.
조카는 "aya", "ye", "woo", "ma"
네 가지 발음을 최대 한 번씩 조합한 발음밖에 못 한다.
문자열 배열 babbling이 매개 변수로 주어진다.
이 중에서 머쓱이의 조카가 발음할 수 있는
단어의 개수를 return하라.
babbling | result |
["aya", "yee", "u", "maa", "wyeoo"] | 1 |
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] | 3 |
** 풀이 방법
발음할 수 있는 단어를 배열로 만든다.
String[] ong = {"aya", "ye", "woo", "ma"};
babbling에서 ong배열에 있는 단어가 있다면그 단어를 "O"로 바꾼다.
for (int i=0; i<babbling.length; i++) {
for (int j=0; j<ong.length; j++) {
if (babbling[i].contains(ong[j]))
babbling[i] = babbling[i].replace(ong[j], "O");
}
}
이중 반복문을 통해
babbling 각 문자열에 접근하고
또 그 문자열에 하나하나씩 접근한다.
모든 문자열이 "O"로 되어있다면
flag를 true로 저장하고,하나라도 "O"가 아니면 false로 저장하고반복문을 끝낸다.flag가 true인 개수를 구한다.
for (int i=0; i<babbling.length; i++) {
for (int j=0; j<babbling[i].length(); j++) {
res = babbling[i].substring(j, j+1);
System.out.print(res);
if (res.equals("O"))
flag = true;
else {
flag = false;
break;
}
}
if (flag) answer++;
System.out.println();
}
테스트 케이스에 출력 결과를 보면 이해가 더 빠를 것이다.
<> 전체 코드 </>
class Solution {
public int solution(String[] babbling) {
String[] ong = {"aya", "ye", "woo", "ma"};
int answer = 0; String res = ""; boolean flag = false;
for (int i=0; i<babbling.length; i++) {
for (int j=0; j<ong.length; j++) {
if (babbling[i].contains(ong[j]))
babbling[i] = babbling[i].replace(ong[j], "O");
}
}
for (int i=0; i<babbling.length; i++) {
for (int j=0; j<babbling[i].length(); j++) {
res = babbling[i].substring(j, j+1);
System.out.print(res);
if (res.equals("O"))
flag = true;
else {
flag = false;
break;
}
}
if (flag) answer++;
System.out.println();
}
return answer;
}
}
반응형
'개발로그 > 알고리즘' 카테고리의 다른 글
프로그래머스 Lv.0 문자열 여러 번 뒤집기 (0) | 2023.07.30 |
---|---|
구간 합 (0) | 2023.07.30 |
프로그래머스 Lv.0 삼각형의 완성조건 (0) | 2023.07.30 |
프로그래머스 Lv.0 직사각형 넓이 구하기 (0) | 2023.07.30 |
프로그래머스 Lv.0 문자열이 몇 번 등장하는지 세기 (0) | 2023.07.28 |
댓글