devlog_owen
[프로그래머스] 숫자 문자열과 영단어 본문
나의 풀이
function solution(s) {
const numberMap = {
'zero': '0',
'one': '1',
'two': '2',
'three': '3',
'four': '4',
'five': '5',
'six': '6',
'seven': '7',
'eight': '8',
'nine': '9'
};
let answer = '';
let currentWord = '';
for (let i = 0; i < s.length; i++) {
const char = s[i];
if (Number.isNaN(Number(char))) {
currentWord += char;
if (numberMap[currentWord] !== undefined) {
answer += numberMap[currentWord];
currentWord = '';
}
} else {
answer += char;
}
}
return parseInt(answer);
}
1. numberMap 객체로 숫자, 영단어를 매핑함. 숫자를 영단어로 변환할 때 사용
const numberMap = {
'zero': '0',
'one': '1', ...
2. answer , currentWord 변수를 초기화시킴.
let answer = '';
let currentWord = '';
3. for문으로 문자열 s를 문자 단위로 순회, 각 문자를 char 변수에 저장
for (let i = 0; i < s.length; i++) {
const char = s[i];
4.Number.isNaN(Number(char))으로 현재 문자가 숫자가 아닌 경우를 확인
숫자가 아니면 현재 문자(char)가 currentWord에 더해짐..
if (Number.isNaN(Number(char))) {
currentWord += char;
5. numberMap으로 currentWord를 확인, 현재 currentWord가 영단어로 변환할 수 있는 경우를 체크
answer에 currentWord를 해당하는 숫자로 변환해서 더해줌. currentWord를 초기화
if (numberMap[currentWord] !== undefined) {
answer += numberMap[currentWord];
currentWord = '';
6. 나머지 경우 == 현재 문자(char)가 숫자, 그대로 answer에 더해줌
else { answer += char;
7. 마지막으로 parseInt로 answer를 정수로 변환하여 반환
return parseInt(answer);
다른 사람 풀이
본문1
회고
본문1
'algorithm > (js)프로그래머스' 카테고리의 다른 글
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2023.11.07 |
---|---|
[프로그래머스] 서울에서 김서방 찾기 (0) | 2023.11.07 |
[프로그래머스] 시저 암호 (0) | 2023.11.07 |
[프로그래머스] 두 정수 사이의 합 (0) | 2023.11.06 |
[프로그래머스] 콜라츠 추측 (0) | 2023.11.06 |