문제
https://school.programmers.co.kr/learn/courses/30/lessons/120894
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
숫자를 영어로 표현한 문자열을 실제 숫자로 모두 치환한 뒤 정수로 변환하면 된다.
먼저 zero부터 nine까지를 순서대로 저장한 배열을 만든다. 배열의 인덱스가 실제 숫자와 동일하므로 반복문을 이용해 각 단어를 해당 숫자로 바꿔준다.
String[] arr = {
"zero","one","two","three","four",
"five","six","seven","eight","nine"
};
문자열 치환은 replace()를 이용하면 특정 문자열을 원하는 문자열로 한 번에 변경할 수 있다.
for (int i = 0; i < arr.length; i++) {
numbers = numbers.replace(arr[i], String.valueOf(i));
}
예를 들어 "onetwofive"는 "125"로 변경된다.
모든 영어 단어를 숫자로 바꾼 뒤에는 Long.parseLong()을 이용해 문자열을 long 타입으로 변환하여 반환한다.
long을 사용하는 이유는 변환된 숫자의 길이가 길어질 수 있어 int의 범위를 초과할 수 있기 때문이다.
코드
class Solution {
public long solution(String numbers) {
String[] arr = {
"zero","one","two","three","four",
"five","six","seven","eight","nine"
};
for (int i = 0; i < arr.length; i++) {
numbers = numbers.replace(arr[i], String.valueOf(i));
}
return Long.parseLong(numbers);
}
}'PS > Programmers' 카테고리의 다른 글
| [프로그래머스 Lv.0] 외계어 사전(Java) (0) | 2026.08.08 |
|---|---|
| [프로그래머스 Lv.0] 캐릭터의 좌표(Java) (0) | 2026.08.02 |
| [프로그래머스 Lv.0] 삼각형의 완성조건(2)(Java) (0) | 2026.07.29 |
| [프로그래머스 Lv.0] 구슬을 나누는 경우의 수(Java) (0) | 2026.07.28 |
| [프로그래머스 Lv.0] 이진수 더하기(Java) (0) | 2026.07.27 |
댓글