CS 일기장

[프로그래머스] 영어가 싫어요 본문

Problem Solving/Programmers

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

덩할 2025. 2. 4. 19:29

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

 

프로그래머스

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

programmers.co.kr

 

이 문제를 틀린 이유

문자열 대체하는 자바의 String 메소드를 생각하지 못하고, contains를 사용해서, True를 리턴했을 때, 해당 숫자로 바꿔줘나 했는데, 그러면 If 문이 너무 많아질려나? 싶기도 하고 쓰다가 지웠다가 다시 생각을 반복하다가, replace 메소드가 있다는 사실을 알게되고, 문제를 풀었다. 그래도 코드가 더럽다. 그냥 다음번엔 배열에 담고, valueOf 메소드 까지 써서 깔끔한 코드, 반복되는 부분이 없는 코드를 작성해야 겠다.

 

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