[JAVA] 프로그래머스 : 영어가 싫어요

조예빈·2024년 8월 31일
0

Coding Test

목록 보기
128/136

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

문자열에서 각 문자를 String값의 숫자로 변환한 후 String값을 정수로 변환해서 풀어주었다. 하지만, 런타임 에러가 발생하였다.

처음 코드(정답 X)

import java.util.*;

class Solution {
    public Integer solution(String numbers) {
        if(numbers.contains("zero")){
            numbers = numbers.replace("zero","0");
        }
        if(numbers.contains("one")){
            numbers = numbers.replace("one","1");
        }
        if(numbers.contains("two")){
            numbers = numbers.replace("two","2");
        }
        if(numbers.contains("three")){
            numbers = numbers.replace("three","3");
        }
        if(numbers.contains("four")){
            numbers = numbers.replace("four","4");
        }
        if(numbers.contains("five")){
            numbers = numbers.replace("five","5");
        }
        if(numbers.contains("six")){
            numbers = numbers.replace("six","6");
        }
        if(numbers.contains("seven")){
            numbers = numbers.replace("seven","7");
        }
        if(numbers.contains("eight")){
            numbers = numbers.replace("eight","8");
        }
        if(numbers.contains("nine")){
            numbers = numbers.replace("nine","9");
        }
        return Integer.parseInt(numbers);
    }
}

정답 코드

문제를 처음 열었을 때, 반환형이 long으로 되어 있었다. 하지만, 내가 Integer로 변경해 주어 범위가 더 좁아졌고, 그로 인해서 런타임 에러가 생겼다. return type을 Long으로 변경해 주니 정답처리되었다.

import java.util.*;

class Solution {
    public long solution(String numbers) {
        if(numbers.contains("zero")){
            numbers = numbers.replace("zero","0");
        }
        if(numbers.contains("one")){
            numbers = numbers.replace("one","1");
        }
        if(numbers.contains("two")){
            numbers = numbers.replace("two","2");
        }
        if(numbers.contains("three")){
            numbers = numbers.replace("three","3");
        }
        if(numbers.contains("four")){
            numbers = numbers.replace("four","4");
        }
        if(numbers.contains("five")){
            numbers = numbers.replace("five","5");
        }
        if(numbers.contains("six")){
            numbers = numbers.replace("six","6");
        }
        if(numbers.contains("seven")){
            numbers = numbers.replace("seven","7");
        }
        if(numbers.contains("eight")){
            numbers = numbers.replace("eight","8");
        }
        if(numbers.contains("nine")){
            numbers = numbers.replace("nine","9");
        }
        return Long.parseLong(numbers);
    }
}

profile
컴퓨터가 이해하는 코드는 바보도 작성할 수 있다. 사람이 이해하도록 작성하는 프로그래머가 진정한 실력자다. -마틴 파울러

0개의 댓글