

풀이방법
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
let answer = s;
for(let i = 0 ; i < numbers.length ; i++){
let arr = answer.split(numbers[i]);
answer = arr.join(i);
}
return Number(answer);
}
우선 숫자를 영어로 바꿨을때의 문자가 필요하다.
zero부터 nine까지의 문자열로 이루어진 배열을 만들어주고
반복문 for를 써서 배열 하나하나를 돌리고 split을 이용해서 numbers[i]에 해당하는 문자들을 나누었다.
그리고 join함수를 사용해서 현재숫자의 인덱스 값인 i를 넣어주고
answer는 문자열이기때문에 숫자열로 바꾸는 Number() 또는 *1, /1을 해주면 된다.
생각보다 푸는데 시간이 오래 걸렸다.
왜냐면 우선 저렇게 푸는건 오래걸리지 않았는데, 다른 방법이 있을거 같다는 생각이 너무 들었다.
예를들면 문자에 해당하는 숫자로 자동으로 바꾸는 함수가 있다던지
근데 너무 오래걸리는거 같아서 저렇게 제출하고 보니까, 다른사람들도 다 비슷한 방법으로 풀고 그런 함수는 존재하지않았다.
'코딩테스트' 카테고리의 다른 글
| (javascript) K번째수 (0) | 2024.02.07 |
|---|---|
| (javascript) 문자열 내 마음대로 정렬하기 (0) | 2024.02.06 |
| (javascript) 시저 암호 (0) | 2024.01.25 |
| (javascript) 최소직사각형 (0) | 2024.01.25 |
| (javascript)크기가 작은 부분 문자열 (0) | 2024.01.24 |