코딩 테스트
[프로그래머스 Level 1] 숫자 문자열과 영단어
y_flm
2025. 4. 23. 15:41
반응형
문제:
네오와 프로도가 숫자놀이를 하고 있습니다.
네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
1478 → "one4seveneight"234567 → "23four5six7"10203 → "1zerotwozero3"
이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다.
s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/81301#
풀이보기
더보기
function solution(s) {
let words = ['zero', 'one','two','three','four','five','six','seven','eight','nine'];
let numWords = {};
let str = s;
for(let i = 0; i <= 9; i++) {
numWords[i] = words[i];
}
for(let num in numWords) {
if(str.includes(numWords[num])) {
str = str.replaceAll(numWords[num], num);
}
}
return Number(str);
}
나는 객체를 이용해서 풀었다.
먼저 숫자 영단어를 미리 작성해놓고, 이를 이용해서 numWords에 0: 'zero' 형식으로 저장했다.
그리고 for in문을 통해서 만약 str에 numWords의 값이 포함되면 해당 값을 replace하도록 했다.
마지막으로 str을 숫자 형식으로 변환해서 반환해주면 끝!
반응형