[Programmers] : 2021 카카오 인턴 > 숫자 문자열과 영단어 > JAVA
- 💾 알고리즘/프로그래머스
- 2021. 11. 18. 13:42
🔗 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/81301
코딩테스트 연습 - 숫자 문자열과 영단어
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자
programmers.co.kr
💻 코드
import java.util.*;
class Solution {
private static HashMap<String, Integer> m = new HashMap<>();
public int solution(String s) {
int answer = 0;
m.put("zero", 0);
m.put("one", 1);
m.put("two", 2);
m.put("three", 3);
m.put("four", 4);
m.put("five", 5);
m.put("six", 6);
m.put("seven", 7);
m.put("eight", 8);
m.put("nine", 9);
Iterator<String> iter = m.keySet().iterator();
while (iter.hasNext()) {
String key = iter.next();
Integer value = m.get(key);
s = s.replaceAll(key, String.valueOf(m.get(key)));
}
//System.out.println("s = " + s);
return Integer.parseInt(s);
}
}
💻 다른 풀이
class Solution {
public int solution(String s) {
int answer = 0;
StringBuilder sb = new StringBuilder("");
int len = s.length();
String[] digits = {"0","1","2","3","4","5","6","7","8","9"};
String[] alphabets = {"zero","one","two","three","four","five","six","seven","eight","nine"};
for(int i=0; i<10; i++){
s = s.replaceAll(alphabets[i],digits[i]);
}
return Integer.parseInt(s);
}
}
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);
}
}
'💾 알고리즘 > 프로그래머스' 카테고리의 다른 글
[Programmers] : 2020 카카오인턴 > 키패드 누르기 (0) | 2021.12.04 |
---|---|
[Programmers] : 2021 Dev-Matching > 로또의 최고 순위와 최저 순위 (0) | 2021.11.20 |
[Programmers] : 2021 KAKAO > 신규아이디 추천 > JAVA (0) | 2021.11.09 |
[Programmers] : Summer/Winter > 소수만들기 (0) | 2021.11.02 |
[Programmers] : 위클리 챌린지 > 최소직사각형 > JAVA (0) | 2021.11.01 |