문제 설명
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.
다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.
- 1478 → "one4seveneight"
- 234567 → "23four5six7"
- 10203 → "1zerotwozero3"
숫자
|
영단어
|
0
|
zero
|
1
|
one
|
2
|
two
|
3
|
three
|
4
|
four
|
5
|
five
|
6
|
six
|
7
|
seven
|
8
|
eight
|
9
|
nine
|
[ 나의 풀이 ]
import java.util.*;
class Solution {
public int solution(String s) {
int answer = 0;
s = s.replaceAll("zero","0").replaceAll("one","1").replaceAll("two","2").replaceAll("three","3")
.replaceAll("four","4").replaceAll("five","5").replaceAll("six","6").replaceAll("seven","7")
.replaceAll("eight","8").replaceAll("nine","9");
answer = Integer.parseInt(s); //string을 int형으로 변환
return answer;
}
}
[ 다른사람 풀이 ]
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);
}
}
나는 빠르게 풀 생각만하다가 노가다로 replaceAll처리를 다 해줬는데 다른사람의 코드를 보니 배열을 사용했다. 간결하면서 깔끔한 소스를 보고 코드를 쓰기전에 다시 한번 더 좋은 방법이 없는지 생각해보고 작성을 해보아야겠다고 생각이 들었다.
728x90
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
[ 프로그래머스 - java ] 크레인 인형뽑기 게임 (2019 카카오 개발자 겨울 인턴십) (0) | 2022.03.22 |
---|---|
[ 프로그래머스 - java ] 키패드 누르기 (2020 카카오 인턴십 ) (0) | 2022.03.21 |
[ 프로그래머스 - java ] 신규 아이디 추천 (2021 KAKAO BLIND RECRUITMENT) (0) | 2022.03.20 |
[ 프로그래머스 - java ] 로또의 최고 순위와 최저 순위 (0) | 2022.03.20 |
[ 프로그래머스 - JAVA ]신고 결과 받기 (0) | 2022.03.19 |
댓글