그라가승훈
[프로그래스-코딩테스트] 숫자 문자열과 영단어 - Java 본문
코딩 테스트 문제 설명
입출력 예
"one4seveneight" | 1478 |
"23four5six7" | 234567 |
"2three45sixseven" | 234567 |
"123" | 123 |
배열 s에 영단어로 되어있는 부분을 숫자로 바꾸는 문제
내 풀이
사용한 것은 replace 메서드와 Integer클래스의 toString, parseInt 이다.
class Solution {
public int solution(String s) {
int answer = 0;
String[] E_num = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
// Integer.toString, Integer.parseInt
for (int i=0; i<10; i++){
s = s.replace(E_num[i], Integer.toString(i));
}
answer = Integer.parseInt(s);
return answer;
}
}
결론
Integer.toString을 쓰지 않고 문자 배열로 숫자를 만드는 풀이도 있었다.
ex) String[] num = {"0", "1" ... "9"};
배열을 두개가 아닌 행과 열로 [0]에는 숫자 [1]에는 영문자로 하나의 배열을 사용한 풀이도 있었다.
ex) String[][] arr = {{"0","zero"}, {"1", "one"}, ... {"9", "nine"}};
해쉬맵으로 풀이한 방법도 있는데 HashMap, Map 에 대해서도 공부 해봐야겠다.
'Java > 코딩테스트' 카테고리의 다른 글
[프로그래스-코딩테스트] 로또의 최고 순위와 최저 순위 구하기 - Java (0) | 2022.07.20 |
---|
Comments