문제 설명
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
- my_string은 소문자와 공백으로 이루어져 있습니다.
- 1 ≤ my_string의 길이 ≤ 1,000
입출력 예my_stringresult
"bus" | "bs" |
"nice to meet you" | "nc t mt y" |
입출력 예 설명
입출력 예 #1
- "bus"에서 모음 u를 제거한 "bs"를 return합니다.
입출력 예 #1
- "nice to meet you"에서 모음 i, o, e, u를 모두 제거한 "nc t mt y"를 return합니다.
1. 기본 for문(모음이 아닌것만 answer ++)
class Solution {
public String solution(String my_string) {
String answer = "";
for(char ch : my_string.toCharArray()) {
if(ch != 'a' && ch != 'e' && ch != 'i' && ch != 'o' && ch != 'u') {
answer += ch;
}
}
return answer;
}
}
2. replaceAll( ) 사용
class Solution {
public String solution(String my_string) {
String answer = my_string.replaceAll("[aeiou]", "");
return answer;
}
}
3. StringBuilder 모음인 것만
class Solution {
public String solution(String my_string) {
StringBuilder sb = new StringBuilder();
for(char c: my_string.toCharArray()) {
if(c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u') continue;
sb.append(c);
}
return sb.toString();
}
}
break | 만나는 즉시 반복문 전체 탈출 |
continue | 만나면 해당 반복부분 탈출 후 다음반복실행 |
모음 아닌 것만 하지 않고(!=), continue를 사용해도 가능..!
문자열을 합칠 때 stringbuilder가 훨씬 빠르고,, replaceAll이 문자열 안에서 특정 문자 찾을 때 좋다..! 생각하기..!
stringbuilder를 하지않고 answer += 이렇게 했더니 훨씬 느리다,,
'algorithm > Programmers' 카테고리의 다른 글
[JAVA] 369 게임 (0) | 2023.02.09 |
---|---|
[Java] 중복된 문자 제거 (0) | 2023.01.27 |
[JAVA] 숨어있는 숫자의 덧셈 (0) | 2023.01.24 |
[JAVA] 소인수분해(feat. Integer[ ] -> int[ ] / int[ ] -> Integer[ ]) (0) | 2023.01.24 |
[JAVA] 문자열 정렬하기(1) (0) | 2023.01.24 |