코딩 테스트/프로그래머스
[입문] 영어가 싫어요
디두딘
2022. 10. 21. 14:47
문제 설명
제한사항
입출력 예
입출력 예 설명
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 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합니다.
내 코드 풀이
import java.util.Map.Entry;
import java.util.*;
class Solution {
public long solution(String numbers) {
String[] numArr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
Map<String, String> map = new HashMap<>();
for (int i = 0; i < numArr.length; i++) {
map.put(numArr[i], Integer.toString(i));
}
for (Entry<String, String> entrySet : map.entrySet()) {
if (numbers.contains(entrySet.getKey())) {
numbers = numbers.replaceAll(entrySet.getKey(), entrySet.getValue());
}
}
return Long.parseLong(numbers);
}
}
느낀 점
이게 맞나 싶다