728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제)영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.

 

 

 

 

 

 

풀이1)

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;
    }
}

answer은 long형이라고 나와있으니까

변환할때, Integer.parseInt()를 활용하기 보다는

long형으로 바꿔주는

Long.parseLong(문자열)을 이용하여 큰 수로 문자열을 바꿔준다.

 

 

풀이2)

class Solution {
    public long solution(String numbers) {

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

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

            long answer = Long.parseLong(numbers);
            return answer;
        }
}

하나하나 replaceAll()하는게 지저분 하다면 이렇게 해결하는 방법도 있다.

728x90