오늘 한 것 코딩 테스트 연습 숫자 문자열과 영단어 문제 설명
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
1478 → “one4seveneight” 234567 → “23four5six7” 10203 → “1zerotwozero3” 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
나의 답 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 function solution (s ) { const reg = /[0-9]|zero|one|two|three|four|five|six|seven|eight|nine/g ; return +s .match(reg) .map((v ) => { switch (v) { case "zero" : return 0 ; case "one" : return 1 ; case "two" : return 2 ; case "three" : return 3 ; case "four" : return 4 ; case "five" : return 5 ; case "six" : return 6 ; case "seven" : return 7 ; case "eight" : return 8 ; case "nine" : return 9 ; default : return v; } }) .join("" ); } console .log(solution("one4seveneight" ));
감탄한 타인의 답 1 2 3 4 5 6 7 8 9 10 11 12 13 14 function solution (s ) { s = s .replace(/zero/gi , 0 ) .replace(/one/gi , 1 ) .replace(/two/gi , 2 ) .replace(/three/gi , 3 ) .replace(/four/gi , 4 ) .replace(/five/gi , 5 ) .replace(/six/gi , 6 ) .replace(/seven/gi , 7 ) .replace(/eight/gi , 8 ) .replace(/nine/gi , 9 ); return parseInt (s); }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 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); } return Number (answer); }
출처: programmers
Nyong’s GitHub