<문제 제시>
<문제설명>
영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다.
문자열 my_string이 매개변수로 주어질 때
모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
<예시 입출력>
<문제 해결 과정>
Try 1)
StringBuffer sb = new StringBuffer();
sb.append(my_string);
int target = -1;
for(int i = 0; i < my_string.length(); i++) {
if(my_string.contains("a") || my_string.contains("e") ||
my_string.contains("i") || my_string.contains("o") ||
my_string.contains("u")) {
target = i;
}
if(target != -1) {
sb.deleteCharAt(target);
}
}
answer = sb.toString();
StringBuffer 클래스를 활용하여 문자열의 특정 인덱스를 제거하고자 하였으나, 인덱스 범위의 오류가 발생하였다.
>> sb.deleteCharAt() 을 활용하고자 하였음
StringBuffer인 sb에 append를 통해 문자열을 넣고,
이 문자열이 a, e, i, o, u까지 포함한다면 target을 해당 인덱스로 초기화한다.
만약 인덱스가 검출되지 않으면 sb.deleteCharAt(target)을 통해 해당하는 인덱스의 문자를 삭제하고자 하였다.
Solution 1)
if(my_string.contains(target[i])) {
// a, e, i, o, u가 있을시 모두 "" 제거해준 후 answer에 누적한다.
answer = my_string.replaceAll(target[i], "");
my_string = answer;
}
contains를 활용하고, replaceAll을 통해 해당하는 모음은 "" (공백)으로 초기화해주는 방법을 채택하였다.
<전체코드>
public class remove_vowel {
public static String solution(String my_string) {
String answer = "";
String[] target = {"a", "e", "i", "o", "u"};
for(int i = 0; i < target.length; i++) {
if(my_string.contains(target[i])) {
// a, e, i, o, u가 있을시 모두 "" 제거해준 후 answer에 누적한다.
answer = my_string.replaceAll(target[i], "");
my_string = answer;
}
// 제거할 모음이 없을 경우에는 다시 리턴해준다.
else {
answer = my_string;
}
}
return answer;
}
public static void main(String[] args) {
String my_string = "nice to meet you";
System.out.println(solution(my_string));
}
}
모음 제거라는 조건이 아니더라도 특정 조건에 해당하는 문자를 없애고자할때 replaceAll("A", "") 등의
메서드를 활용할 수 있음을 알 수 있었다.
문제링크)
https://school.programmers.co.kr/learn/courses/30/lessons/120849
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Algorithms > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 'k의 개수' - Java (1) | 2023.05.09 |
---|---|
[프로그래머스] '최댓값 만들기 (1)' - Java (0) | 2023.05.03 |
[프로그래머스] '약수 구하기' - Java (1) | 2023.05.02 |
[프로그래머스] '합성수 찾기' - Java (0) | 2023.05.02 |
[프로그래머스] '영어가 싫어요' - Java (0) | 2023.05.01 |