Q. 질문 설명 생략
ex) 입출력 예시
| s | result |
| 'one4seveneight' | 1478 |
| '23four5six7' | 234567 |
| '2three45sixseven' | 234567 |
| '123' | 123 |
Thinking Process
우선 숫자를 영어로 표시한 배열, 일시적으로 값을 담을 value 변수, 결과를 담을 result 변수를 만들고,
for문으로 하나씩 value에 담아서 value의 값을 배열이 가지고 있을 경우, index 값을 찾고 result에 넣고 다시 value를 초기화하한다.
만일 요소를 Number로 변환했을 때 NaN이 아닌 경우는 숫자인거니까, 그대로 result 변수에 넣는 방식을 생각했다.
Code
function solution(s) {
const arr = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
let value = '';
let result = '';
for (let i = 0; i < s.length; i++) {
if (!isNaN(Number(s[i]))) {
result += s[i];
} else {
value += s[i];
if (arr.includes(value)) {
const idx = arr.indexOf(value);
result += idx;
value = '';
}
}
}
return Number(result);
}
'Algorithm Solution > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] 비밀지도 (0) | 2023.08.07 |
|---|---|
| [프로그래머스] 최소 직사각형 (0) | 2023.08.03 |
| [프로그래머스] 삼총사 (0) | 2023.08.03 |
| [프로그래머스] 삼각형의 완성조건(2) (0) | 2023.03.02 |
| [프로그래머스] 구슬을 나누는 경우의 수 (0) | 2023.02.23 |
