코딩테스트 연습/프로그래머스 LV.0

[프로그래머스] Lv.0 모음 제거 - 자바(Java)

5ein 2024. 3. 27. 13:00

문제: 코딩테스트 연습 - 모음 제거 | 프로그래머스 스쿨 (programmers.co.kr)

문제설명

영어에선 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"

나의 문제 풀이

// 풀이1
import java.util.ArrayList;
class Solution {
    public String solution(String my_string) {
        String answer = "";
        char[] c = {'a', 'e', 'i', 'o', 'u'};
        ArrayList<Character> list = new ArrayList<>();
        for (int i = 0; i < my_string.length(); i++) {
            char r = my_string.charAt(i);
            boolean t = true;
            for (Character j : c) {
                if(j == r) {
                    t = false;
                    break;
                }
            }
            if(t == true) list.add(r);
        }
        for (Character i : list) {
            answer += i;
        }
        return answer;
    }
}

// 풀이2
class Solution {
    public String solution(String my_string) {
        String answer = my_string;
        String[] s = new String[]{"a", "e", "i", "o", "u"};
        for(String i : s){
            if(answer.contains(i)){
                answer = answer.replace(i, "");
            }
        }
        return answer;
    }
}

다른 사람의 문제풀이

//다른사람 풀이1
class Solution {
    public String solution(String my_string) {
        String answer = "";

        answer = my_string.replaceAll("[aeiou]", "");

        return answer;
    }
}

//다른사람 풀이2
class Solution {
    public String solution(String my_string) {
        String answer = "";

        answer = my_string.replaceAll("a|e|i|o|u", "");

        return answer;
    }
}

//다른사람 풀이3
class Solution {
    public String solution(String my_string) {
        String answer = "";

        answer = my_string.replaceAll("[a,e,i,o,u]","");

        return answer;
    }
}

//다른사람 풀이4
class Solution {
    public String solution(String my_string) {

        my_string = my_string.replace("a", "");
        my_string = my_string.replace("e", "");
        my_string = my_string.replace("i", "");
        my_string = my_string.replace("o", "");
        my_string = my_string.replace("u", "");

        return my_string;
    }
}

 


느낀점

정규식을 사용한 방법이 너무 간단해서 허무했다...

다른사람 풀이를 보면 이렇게 해야지 하고는 막상 문제풀 때는 생각이 안나는건 왜일까..ㅠ


문제 출처: 코딩테스트 연습 | 프로그래머스 스쿨 (programmers.co.kr)