문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/120826
답안1 (for문)
function solution(my_string, letter) {
let result = [];
for (let i = 0; i <= my_string.length; i = i + 1) {
if (my_string[i] !== letter) {
result.push(my_string[i])
}
}
return result.join('')
}
- 굉장히 무식하게 풀었구나... 라는 생각을 감출 수 없다.
- 일단 string은 일부만 변경이 불가능하므로...
- 일단 배열에 엘리먼트들을 push한 뒤 join('')으로 문자열로 만들어버렸다.
- 근데 사실 메서드는 이렇게 만드는 것일지도 모른다.
답안2 (replaceAll)
function solution(my_string, letter) {
return my_string.replaceAll(letter, '')
}
- replaceAll 메서드는 인수를 2개 받는데
- 문자열 내 첫번째 인수와 같은 엘리먼트가 있다면 두번째 인수로 바꿔주는 역할을 한다.
- letter를 빈 문자열('')으로 바꾼다는 의미이므로 정답이 된다.
답안3 (정규표현식)
function solution(my_string, letter) {
let reg = new RegExp(letter, 'g')
return my_string.replace(reg, '')
}
- new RegExp로 정규표현식을 만들 수 있다.
- 문자열.replace()는 정규표현식을 인수로 받을 수 있다.
- 따라서 정규표현식에 해당하는 내용을 공백으로 바꿔준다고 메서드를 작성할 수 있다.
- 여기서 알아야 할 것은 정규표현식의 존재이다.
'코테 문제 풀이' 카테고리의 다른 글
[레벨 0] 가위 바위 보 (if 노가다, 객체 활용) (0) | 2022.12.17 |
---|---|
[레벨 0] 배열의 유사도 (이중 for문, 메서드) (0) | 2022.12.09 |
[레벨 0] 문자열 뒤집기 (0) | 2022.12.07 |
[레벨 0] 짝수 홀수 개수 (모범답안 + 재귀함수 괴답안 with slice) (0) | 2022.12.06 |
[레벨 0] 중복된 숫자 개수 (for of) (0) | 2022.12.06 |