문제풀이/프로그래머스
Java - 모음제거
by Ropung
2023. 10. 12.
Lv0. - java
[문제링크]
https://school.programmers.co.kr/learn/courses/30/lessons/120849
요구사항
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string
이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
제한사항
my_string
은 소문자와 공백으로 이루어져 있습니다.
- 1 ≤
my_string
의 길이 ≤ 1,000
입출력 예
my_string |
result |
“bus” |
“bs” |
“nice to meet you” |
“nc t mt y” |
나의 문제풀이
class Solution { public String solution(String my_string) { String answer = ""; answer = my_string.replaceAll("[aeiou]", ""); return answer; } }
- 특정 모음을 제거하기 위해 [aeiou]를 정규식에 해당하면 ""공백으로 만들어 해결하였다.
테스트 |
성능 |
테스트 1 〉 |
통과 (0.09ms, 75.3MB) |
테스트 2 〉 |
통과 (0.08ms, 73.6MB) |
테스트 3 〉 |
통과 (0.13ms, 68.9MB) |
테스트 4 〉 |
통과 (0.07ms, 65.7MB) |
테스트 5 〉 |
통과 (0.12ms, 75.5MB) |
테스트 6 〉 |
통과 (0.12ms, 79MB) |
다른사람의 문제풀이 1
class Solution { public String solution(String my_string) { String[] vowels = new String[]{"a", "e", "i", "o", "u"}; for(String vowel : vowels){ if(my_string.contains(vowel)){ my_string = my_string.replace(vowel, ""); } } return my_string; } }
- String 모음배열을 만들어 반복문을 만들고
my_string
에 모음이 포함된다면 ""
공백으로 해결하였다.
테스트 |
성능 |
테스트 1 〉 |
통과 (0.08ms, 74.8MB) |
테스트 2 〉 |
통과 (0.05ms, 69.2MB) |
테스트 3 〉 |
통과 (0.04ms, 74.2MB) |
테스트 4 〉 |
통과 (0.05ms, 69.1MB) |
테스트 5 〉 |
통과 (0.05ms, 77.1MB) |
테스트 6 〉 |
통과 (0.06ms, 83.2MB) |
고민
replace(), replaceAll() ?
replace함수와 replaceAll함수는 둘다 특정 문자열을 원하는 문자열로 바꿔주는 함수이다.
핵심
은 스트링의 값을 바꿔주는게 아니라 변경된 문자열 값을 새롭게 리턴해주는 함수
이기 떄문에 변수에 대입해주어야 한다.