본문 바로가기

프로그래머스 코딩(자바)/Level 0

Programmers Level 0 - 특정 문자 제거하기

728x90
  • 특정 문자 제거하기
문제 설명

문자열 my_string과 문자 letter이 매개변수로 주어집니다. my_string에서 letter를 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

 
제한사항
  • 1 ≤ my_string의 길이 ≤ 100
  • letter은 길이가 1인 영문자입니다.
  • my_string과 letter은 알파벳 대소문자로 이루어져 있습니다.
  • 대문자와 소문자를 구분합니다.

 

입출력 예
my_string letter result
"abcdef" "f" "abcde"
"BCBdbe" "B" "Cdbe"

입출력 예 설명

입출력 예 #1

  • "abcdef" 에서 "f"를 제거한 "abcde"를 return합니다.

입출력 예 #2

  • "BCBdbe" 에서 "B"를 모두 제거한 "Cdbe"를 return합니다.

 

[ 풀이 1 ]

1
2
3
4
5
6
7
8
9
class Solution {
    public String solution(String my_string, String letter) {
        String answer = "";
        for(int i=0;i<my_string.length();i++) {
            if(!letter.equals(my_string.charAt(i)+"")) answer += my_string.charAt(i);
        }
        return answer;
    }
}
cs
문자열.charAt(index) 는 원하는 위치의 문자를 char 형태로 가져온다.
문자열과 일치하느지 비교해야 하므로 더하기 빈문자열을 하여 equals() 메서드를 이용하여 일치하지 않으면 더해준다.

[ 풀이 2 ]

1
2
3
4
5
6
7
8
9
class Solution {
    public String solution(String my_string, String letter) {
        String answer = "";
        for(String str : my_string.split("")) {
            if(!letter.equals(str)) answer += str;
        }
        return answer;
    }
}
cs
위의 문제는 형변환을 해야 했기에 처음부터 String 배열로 만들어 비교 하였다.

[ 풀이 3 ]

1
2
3
4
5
class Solution {
    public String solution(String my_string, String letter) {
        return my_string.replaceAll(letter, "");
    }
}
cs
여기서는 replaceAll(찾는 문자열, 바꿀문자열) 메서드를 이용하여 원하는 문자열(letter)을   빈문자열("")로 바꿔 주었다.

728x90