728x90
오늘의 문제는 프로그래머스
숫자 문자열과 영단어
문제
문제 설명
숫자의 일부 자릿수를 영단어로 바꾼 문자열 s가 주어집니다. 이떄 s가 의미하는 원래 숫자를 반환하는 문제입니다.
[입력 예시]
"one4seveneight"
[출력 예시]
1478
문제 접근 방식
문자열의 특정 문자를 치환할 때 사용하는 메서드인 replace()를 이용하여 문제를 풀었습니다. 문제에서 주어진 각 숫자에 대응되는 영단어 표를 바탕으로 문자를 치환하였습니다. 변환된 문자열은 String 타입이므로 int 타입으로 형변환 하여 결과를 반환하였습니다.
문제 풀이
class Solution {
public int solution(String s) {
s = s.replace("zero", "0");
s = s.replace("one", "1");
s = s.replace("two", "2");
s = s.replace("three", "3");
s = s.replace("four", "4");
s = s.replace("five", "5");
s = s.replace("six", "6");
s = s.replace("seven", "7");
s = s.replace("eight", "8");
s = s.replace("nine", "9");
int answer = Integer.parseInt(s);
return answer;
}
}
다른 풀이 알아보기
replaceAll() 메서드를 활용하여 간결하게 작성된 코드입니다. replaceAll()은 바꾸고 싶은 문자로 문자열 전부를 치환해주는 기능을 합니다. 따라서 배열에 각 숫자에 대응되는 영단어를 저장하고 배열을 순회하며 영단어를 숫자로 변환해 문자열에 저장합니다.
마찬가지로 변환된 문자열은 String 타입이므로 int형으로 형변환을 해주어 반환합니다.
class Solution {
public int solution(String s) {
String[] strArr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for(int i = 0; i < strArr.length; i++) {
s = s.replaceAll(strArr[i], Integer.toString(i));
}
return Integer.parseInt(s);
}
}
728x90
댓글