class Solution {
public String solution(String my_string, String letter) {
char[] chars = my_string.toCharArray();
char l = letter.charAt(0);
for(int i =0; i < chars.length; i++){
if(chars[i] == l){
?????????
}
}
return answer;
}
}
문자열 my_string에서 letter를 제거한 문자열을 return하는 solution 구축
나의 전략은 아래와 같았다:
- my_string을 char 형태로 변환
- for문을 사용하여 char 형태의 my_string을 letter와 비교
- if문을 사용하여 char 형태의 my_string과 l이 같다면 my_string에서 해당 letter 빼기
문제는 char 형태의 my_string과 l이 같은지까지 비교는 가능하였으나, 그 후 어떻게 작성해야할 지 몰라서 여러 코드를 넣어봤지만 계속 원하는 값이 나오지 않았다. 내가 머리속에서 계속 생각한것은 my_string - l 이였는데 이것을 구현하는게 너무 어려웠다.
class Solution {
public String solution(String my_string, String letter) {
char[] chars = my_string.toCharArray();
char l = letter.charAt(0);
for(int i =0; i < chars.length; i++){
if(chars[i] == l){
chars[i] = ' '; // replace the letter with a space
}
}
String answer = new String(chars).replaceAll(" ", ""); // convert the modified char array to a string and remove the space
return answer;
}
}
구글링을 통하여 replace라는 method를 알게되었고, 적용하여 문제점을 풀 수 있었다.
먼저 char 형태의 my_string과 l이 같은지까지 비교 후 char[i]의 값을 ' '으로 주고
replaceAll을 사용하여 space를 제거해줌.
이번 알고리즘 문제를 풀며 아래와 같이 몇가지를 배울 수 있었다:
- String 문자열을 char로 바꾸기 위해서는 아래와 같이 할 수 있다.
char[] chars = my_string.toCharArray(); - array인 경우 .toCharArray 추가 필요
char l = letter.charAt(0); - charAt(0) = letter와 동일- replace() 혹은 replaceAll() method에 대해 배웠다.
replace()는 char에서 사용이 가능하고, 첫번째 매개변수는 변환하고자 하는 대상이 될 문자열, 두번째 매개변수는 변환할 문자 값이다
replaceAll()은 String에서 사용이 가능하고, 대상 문자열을 원하는 문자값으로 변환하는 함수이다. 첫번째 매개변수는 변환하고자 하는 대상이 될 문자열이고 두번째 매개변수는 변환할 문자 값이다.- 마지막으로 replaceAll()을 사용하여 아래와 같이 간단하게 해당 문제를 끝낼 수도 있었다.
class Solution { public String solution(String my_string, String letter) { String answer = my_string.replaceAll(letter, ""); return answer; } }
딥빡.