카테고리 없음
[프로그래머스] Lv1. 숫자 문자열과 영단어 (javascript)
hee0
2022. 9. 13. 14:36
입력된 문자열로부터 원래 숫자 찾기 게임
규칙
숫자 | 영단어 |
0 | zero |
1 | one |
2 | two |
3 | three |
4 | four |
5 | five |
6 | six |
7 | seven |
8 | eight |
9 | nine |
제한사항
- 1 ≤ s의 길이 ≤ 50
- s가 "zero" 또는 "0"으로 시작하는 경우는 주어지지 않습니다.
- return 값이 1 이상 2,000,000,000 이하의 정수가 되는 올바른 입력만 s로 주어집니다.
나의 풀이
- 주어진 숫자별 영단어 배열을 상수(numbers)로 저장
- 주어진 문자열(s)를 한자리씩 파싱(sn)하여 순환
- sn이 숫자형이 아니면
- tmpStr에 추가
- numbers에서 tmpStr과 일치하는 배열 인덱스 찾기(findNum)
- findNum이 있으면
- 숫자형 결과(answer)에 추가
- findNum에 없으면
- 다음 순환 시작
- sn이 숫자형이면,
- 숫자형 결과(answer)에 추가
- sn이 숫자형이 아니면
const numbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
function solution(s) {
var answer = '';
var tmpStr = '';
[...s].forEach( sn => {
if (isNaN(sn)) {
tmpStr += sn;
var findNum = numbers.findIndex( n => n === tmpStr);
if (findNum > -1) {
answer += findNum;
tmpStr = ''
}
} else {
answer += sn;
}
});
return +answer;
}