본문 바로가기

프로그래머스 코딩(자바)/Level 0

Programmers Level 0 - 영어가 싫어요

728x90

문제 설명

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

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

 

입출력 예
   
numbers result                                                       
"onetwothreefourfivesixseveneightnine" 123456789
"onefourzerosixseven" 14067


입출력 예 설명

입출력 예 #1

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

입출력 예 #1

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

 

1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
    public long solution(String numbers) {
        long answer = 0;
        String ar[] = {"zero""one""two""three""four""five",
"six""seven""eight""nine"};
        for(int i=0;i<ar.length;i++) {
             numbers = numbers.replace(ar[i], i+"");
        }
        answer = Long.parseLong(numbers);
        return answer;
    }
}
cs

 

   숫자들의 영단어를 배열에 넣어 놓고

  배열의 값에 들어있는 단어를 숫자로 바꿔준 다음  형변환 하였다.

 

1
2
3
4
5
6
7
8
9
10
11
class Solution {
    public long solution(String numbers) {
        long answer = 0;
        String ar[] = "zero,one,two,three,four,five,six,seven,eight,nine".split(",");
        for(int i=0;i<ar.length;i++) {
             numbers = numbers.replace(ar[i], i+"");
        }
        answer = Long.parseLong(numbers);
        return answer;
    }
}
cs

 

  배열을 split()을 이용하여 만들었다.

 

728x90