https://programmers.co.kr/learn/courses/30/lessons/81301?language=javascript
function solution(s){
const arrayObject= {
zero : "0",
one : "1",
two : "2",
three : "3",
four : "4",
five : "5",
six : "6",
seven : "7",
eight : "8",
nine : "9"
}
function isNum(str){
if(typeof(str) != "string") return false;
return !isNaN(str) && //문자 false, 숫자 true
!isNaN(parseInt(str)); //숫자 = 숫자, 문자는 NaN
}
let mainStack = "";
let tmpStack = "";
let lastValue = "";
for(let i=0; i < s.length+1; i++){
if(i==0) {
lastValue = s[i];
tmpStack = s[i];
continue;
}
if(i==s.length){
if(arrayObject[tmpStack] != undefined) {
mainStack += arrayObject[tmpStack];
tmpStack = "";
}
mainStack += tmpStack;
break;
}
if(arrayObject[tmpStack] != undefined) {
mainStack += arrayObject[tmpStack];
tmpStack = "";
}
//tmp 에는 불완전 문자 또는 숫자가 남음
if(isNum(s[i]) != isNum(lastValue)) {
mainStack += tmpStack;
tmpStack = s[i];
}
else tmpStack += s[i];
lastValue = s[i];
}
return parseInt(mainStack);
}
다른 사람 답 :
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var answer = s;
for(let i=0; i< numbers.length; i++) {
let arr = answer.split(numbers[i]);
answer = arr.join(i);
console.log("arr", arr);
console.log("answer", answer);
}
return Number(answer);
}
arr [ 'one4seveneight' ]
answer one4seveneight
arr [ '', '4seveneight' ]
answer 14seveneight
arr [ '14seveneight' ]
answer 14seveneight
arr [ '14seveneight' ]
answer 14seveneight
arr [ '14seveneight' ]
answer 14seveneight
arr [ '14seveneight' ]
answer 14seveneight
arr [ '14seveneight' ]
answer 14seveneight
arr [ '14', 'eight' ]
answer 147eight
arr [ '147', '' ]
answer 1478
arr [ '1478' ]
answer 1478
'교육 > 코테' 카테고리의 다른 글
[프로그래머스]JS 없는 숫자 더하기 (0) | 2022.05.19 |
---|---|
[프로그래머스]JS 크레인 인형뽑기 게임 (0) | 2022.05.19 |
[프로그래머스]JS 키패드 누르기 (0) | 2022.05.18 |
[프로그래머스]JAVA 신규 아이디 추천 (0) | 2022.05.13 |
[프로그래머스]JAVA 로또의 최고 순위와 최저 순위 (0) | 2022.05.13 |