[코딩테스트연습] 코딩테스트 입문 > 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,"");
이런 식으로 쉽게 접근할 수 있더라...!
'코딩 테스트 > [프로그래머스] Java' 카테고리의 다른 글
[코딩테스트연습] 코딩테스트 입문 > Lv.0 문자열안에 문자열 (0) | 2024.03.16 |
---|---|
[코딩테스트연습] 코딩테스트 입문 > Lv.0 최댓값 만들기(1) (0) | 2024.03.16 |
[코딩테스트연습] 코딩테스트 입문 > Lv.0 점의 위치 구하기 (0) | 2024.03.16 |
[Java] java.util.Arrays (0) | 2024.03.13 |
[코딩테스트연습] 코딩테스트 입문 > Lv.0 배열 자르기 (0) | 2024.03.13 |