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

2023. 2. 10. 20:47알고리즘

728x90

문제 설명

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

제한사항

  • numbers는 소문자로만 구성되어 있습니다.
  • numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
  • 1 ≤ numbers의 길이 ≤ 50
  • "zero"는 numbers의 맨 앞에 올 수 없습니다.

입출력 예

입출력 예 설명

입출력 예 #1

  • "onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return합니다.

입출력 예 #1

  • "onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.

코드 설명

import java.util.Scanner;

public class Solution {
	public long solution(String numbers) {
        long answer = 0;
        String[] str = {"zero","one","two","three","four","five","six","seven","eight","nine"}; // 배열에 0~9까지 문자들 담아줌
        
        for (int i = 0; i < str.length; i++) {
        	numbers = numbers.replaceAll(str[i], String.valueOf(i)); // numbers에 str[i]가 있으면 i를 String으로 변환해서 numbers에서 바꿔줌
        }
        
        answer = Long.parseLong(numbers); // numbers를 Long으로 변환
        
        return answer;
    }
	public static void main(String[] args) {
		Solution T = new Solution();
		Scanner sc = new Scanner(System.in);
		String numbers = sc.next();
		System.out.println(T.solution(numbers));
		sc.close();
	}
}
728x90