프로그래머스 숫자 문자열과 영단어 python, java

gobeul·2023년 9월 13일

알고리즘 풀이

목록 보기
32/70
post-thumbnail

📜 문제 바로 가기 : 숫자 문자열과 영단어

제출코드

파이썬

def solution(s):
    number = [
        "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
    ]
    
    idx = 0
    word = ""
    flag = False
    ans = ""
    while idx < len(s):
        if flag == True:
            word += s[idx]
            if word in number:
                ans += str(number.index(word))
                word = ""
                flag = False
        else:
            try:
                k = int(s[idx])
                ans += str(k)
            except:
                flag = True
                word += s[idx]
        
        idx += 1
            

    return int(ans)

자바

class Solution {
    public int solution(String s) {
        String[] number = new String[]{
            "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
        };
        
        int idx = 0;
        String ans = "";
        boolean flag = false;
        String word = "";
        while (idx < s.length()) {
            if (flag == true) {
                word += s.charAt(idx);
                System.out.println(word);
                for (int i = 0; i < 10; i++) {
                    if (word.equals(number[i])) {
                        ans += String.valueOf(i);
                        word = "";
                        flag = false;
                        break;
                    }
                }
            } else {
                try {
                    int k = Integer.parseInt(String.valueOf(s.charAt(idx)));
                    ans += String.valueOf(s.charAt(idx));
                } catch(Exception e) {
                    word = String.valueOf(s.charAt(idx));
                    flag = true;
                }
            }
            
            idx += 1;
        }
        
        int answer = Integer.parseInt(ans);
        return answer;
    }
}

접근방법

배열 인덱스에 맞춰 영어 문자를 넣어주었고 예외처리를 이용하여 영문자인지 숫자문자인지를 구분했다.
flag는 영어문자를 인식하고 올바른 영어 문자가 나올때까지 구분하는 용도로 만들어 주었다.

profile
뚝딱뚝딱

0개의 댓글