본문 바로가기
  • Let's study
PS/Programmers

[프로그래머스 Lv.0] 영어가 싫어요(Java)

by 코딩고수이고파 2026. 8. 1.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/120894

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

풀이

숫자를 영어로 표현한 문자열을 실제 숫자로 모두 치환한 뒤 정수로 변환하면 된다.

먼저 zero부터 nine까지를 순서대로 저장한 배열을 만든다. 배열의 인덱스가 실제 숫자와 동일하므로 반복문을 이용해 각 단어를 해당 숫자로 바꿔준다.

 
String[] arr = {
    "zero","one","two","three","four",
    "five","six","seven","eight","nine"
};
 

문자열 치환은 replace()를 이용하면 특정 문자열을 원하는 문자열로 한 번에 변경할 수 있다.

 
for (int i = 0; i < arr.length; i++) {
    numbers = numbers.replace(arr[i], String.valueOf(i));
}
 

예를 들어 "onetwofive"는 "125"로 변경된다.

모든 영어 단어를 숫자로 바꾼 뒤에는 Long.parseLong()을 이용해 문자열을 long 타입으로 변환하여 반환한다.

long을 사용하는 이유는 변환된 숫자의 길이가 길어질 수 있어 int의 범위를 초과할 수 있기 때문이다.

코드

class Solution {
    public long solution(String numbers) {
        
        String[] arr = {
            "zero","one","two","three","four",
            "five","six","seven","eight","nine"
        };

        for (int i = 0; i < arr.length; i++) {
            numbers = numbers.replace(arr[i], String.valueOf(i));
        }

        return Long.parseLong(numbers);
    }
}

댓글