-
[Programmers] JavaScript 알고리즘 | Lv.0 영어가 싫어요► JS Algorithm/Programmers 2024. 8. 16. 16:27반응형
🔒 문제 설명
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
🔒 제한사항
- numbers는 소문자로만 구성되어 있습니다.
- numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
- 1 ≤ numbers의 길이 ≤ 50
- "zero"는 numbers의 맨 앞에 올 수 없습니다.
🔒 입출력 예
numbers result "onetwothreefourfivesixseveneightnine" 123456789 "onefourzerosixseven" 14067
🔒 입출력 예 설명
입출력 예 #1
- "onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return합니다.
입출력 예 #1
- "onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.
🔐 solution of mine
Object.keys()
Array.prototype.forEach()
RegExp
String.prototype.replace()
단항 더하기 (+)
const map = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9, }; function solution(numbers) { Object.keys(map).forEach((eng) => { const reg = new RegExp(eng, "g"); numbers = numbers.replace(reg, map[eng]); }); return console.log(+numbers); } solution("onetwothreefourfivesixseveneightnine"); // expected output: 123456789 solution("onefourzerosixseven"); // expected output: 14067
🔐 GPT's solution
String.prototype.split()
Array.prototype.join()
function solution(numbers) { const map = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9, }; for (let word in map) { numbers = numbers.split(word).join(map[word]); } return console.log(parseInt(numbers)); } solution("onetwothreefourfivesixseveneightnine"); // expected output: 123456789 solution("onefourzerosixseven"); // expected output: 14067
🔐 solution of others
String.prototype.replace()
RegExp
Number
function solution(numbers) { const map = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9, }; const num = numbers.replace( /zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => map[v] ); return console.log(Number(num)); } solution("onetwothreefourfivesixseveneightnine"); // expected output: 123456789 solution("onefourzerosixseven"); // expected output: 14067
🔐 solution of others
Number
Array.prototype.reduce()
String.prototype.replaceAll()
function solution(numbers) { return console.log( Number( [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", ].reduce((acc, cur, idx) => acc.replaceAll(cur, idx), numbers) ) ); } solution("onetwothreefourfivesixseveneightnine"); // expected output: 123456789 solution("onefourzerosixseven"); // expected output: 14067
반응형'► JS Algorithm > Programmers' 카테고리의 다른 글
[Programmers] JavaScript 알고리즘 | Lv.0 배열 만들기 4 (0) 2024.08.17 [Programmers] JavaScript 알고리즘 | Lv.0 두 수의 합 (0) 2024.08.16 [Programmers] JavaScript 알고리즘 | Lv.0 왼쪽 오른쪽 (0) 2024.08.15 [Programmers] JavaScript 알고리즘 | Lv.0 공 던지기 (0) 2024.08.15 [Programmers] JavaScript 알고리즘 | Lv.0 특수문자 출력하기 (0) 2024.08.15