알고리즘 문제풀이/프로그래머스
[프로그래머스] Lv.0 - 영어가 싫어요 (javascript)
dv_jamie
2023. 1. 5. 11:59
https://school.programmers.co.kr/learn/courses/30/lessons/120894
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
function solution(numbers) {
const toNumber = {
zero: '0',
one: '1',
two: '2',
three: '3',
four: '4',
five: '5',
six: '6',
seven: '7',
eight: '8',
nine: '9'
}
let word = ''
let answer = ''
for(const str of numbers) {
word += str
if(toNumber[word]) {
answer += toNumber[word]
word = ''
}
}
return +answer
}
인상 깊었던 다른 사람 풀이
function solution(numbers) {
let words = [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" ]
words.forEach((word, idx) => {
numbers = numbers.replaceAll(word, idx)
})
return +numbers
}
- 숫자 단어 배열(words)을 만듦
- forEach문을 활용해 words 배열을 순회
- 각 숫자 단어는 해당 인덱스와 같음 (zero -> [0], one -> [1], ..., nine -> [9])
- replaceAll()을 활용해 words 배열 안의 단어들을 해당 인덱스로 바꿈
- numbers를 Number로 형변환하여 반환