본문 바로가기
문제풀이/프로그래머스

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함수는 둘다 특정 문자열을 원하는 문자열로 바꿔주는 함수이다.
핵심 은 스트링의 값을 바꿔주는게 아니라 변경된 문자열 값을 새롭게 리턴해주는 함수이기 떄문에 변수에 대입해주어야 한다.

'문제풀이 > 프로그래머스' 카테고리의 다른 글

Java - 배열의 유사도  (2) 2023.10.12
Lv0. 순서쌍의 개수 - java  (0) 2023.10.09
Lv0. 삼각형의 완성조건 (1) - java  (0) 2023.10.09
Lv0.편지-java  (2) 2023.10.07