[코딩테스트연습] 코딩테스트 입문 > Lv.0 특정 문자 제거하기

2024. 3. 16. 11:17코딩 테스트/[프로그래머스] Java

문제 설명


문제 풀이

[try1]

class Solution {
    public String solution(String my_string, String letter) {
        String answer = "";
        for(int i=0; i<my_string.length(); i++){
            if(my_string.charAt(i).equals(letter)) continue;
            else answer+=my_string.charAt(i);
        }
        return answer;
    }
}

 

my_string에서 하나씩 원소를 가져와서, 이 문자가 letter와 같다면 pass 다르다면 answer 문자열에 추가하는 방식을 떠올렸다. 하지만.. 오류 발생!

 

 

charAt()을 통해 가져온 원소는 char 데이터 타입이고, 이를 통해 역참조를 할 수 없다고 말하고 있다.

즉, char라는 원시 타입에서는 .equals()라는 메소드가 없다는 소리이다.

.equals()는 String 데이터 타입에서 사용한다는 걸 알고 있었는데 char와 헷갈렸던 것이다!

따라서 비교하는 피연산자 두 데이터 타입을 char로 바꾸어서 다시 실행해보자.

 

 

[try2]

class Solution {
    public String solution(String my_string, String letter) {
        String answer = "";
        for(int i=0; i<my_string.length(); i++){
            if(my_string.charAt(i)==letter.charAt(0)) continue;
            else answer+=my_string.charAt(i);
        }
        return answer;
    }
}

 

이렇게 해결할 수 있었다!


다른 사람의 풀이 보기

1. String 데이터 타입으로 주어졌으므로, 이때 활용할 수 있는 메소드 중에서 쓸모있는 것들을 사용하자.

String.replace(letter,"");

이런 식으로 쉽게 접근할 수 있더라...!