내 맘대로 공부
article thumbnail

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);
}

 

profile

내 맘대로 공부

@곰도리도리잼

잘못된 정보가 있다면 알려주세요 🧸