개요
- 분명 언젠가 거의 흡사한 문항을 백준에서 푼 기억이 있는데 하하... 다 까먹었다
- 포스팅하지는 않았지만 다른 카카오 코테 문항에도 정규표현식이 필수적인 문항이 있었는데, 우테코가 일주일 남은 시점 정규표현식 공부를 해야하나 고민이 많다.
- 이 문제는 심플하지만, 메서드를 정확히 알고 있어야 풀 수 있는 듯하다. (정규표현식을 사용하지 않는 경우에)
접근
- 제시된 문자열을 선형검색하며 영단어 문자열과 일치하는 경우 치환해주는 정석적인 알고리즘을 생각했지만 구현이 쉽지 않음
JS CODE - 프로그래머스 우수 풀이
function solution(s) {
const num_list = ['zero', 'one', 'two', 'three', 'four','five', 'six', 'seven', 'eight', 'nine'];
let answer = s;
for (let i=0;i<10; i++) {
let arr = answer.split(num_list[i]);
answer = arr.join(i);
}
return parseInt(answer);
}
- split 메서드는 주어진 인수를 기준으로 나누는 메서드라고 추상적으로 기억하고 있었지만, 조금 더 명확히 생각해보면, 주어진 인수를 삭제하고 남는 부분을 배열의 형태로 반환하는 메서드다.
- join 메서드는 주어진 인수를 쉼표 사이사이에(배열의 사이사이에) 대입해 반환하는 메서드다.
- 둘을 종합해서 생각해보면, 영어로 된 문자열을 삭제하고, 그 자리에 숫자를 채워넣는 메커니즘으로 동작함을 알 수 있다.
'알고리즘 > 구현' 카테고리의 다른 글
[JavaScript] 2019 KAKAO 크레인 인형뽑기 (0) | 2022.05.02 |
---|---|
[JavaScript] 2022 KAKAO 신고 결과 받기 (0) | 2022.04.29 |
[Python] 백준, 1946 (0) | 2021.11.23 |
[Python] union-find (0) | 2021.10.09 |