250x250
Notice
Recent Posts
Recent Comments
Link
«   2025/10   »
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
Archives
Today
Total
관리 메뉴

devlog_owen

[프로그래머스] 숫자 문자열과 영단어 본문

algorithm/(js)프로그래머스

[프로그래머스] 숫자 문자열과 영단어

developer_owen 2023. 11. 7. 09:03
728x90

 

 


 

 

나의 풀이

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


 

 

 

 

728x90