문제 정보
- 사이트 : programmers
- 문제 번호 : 81301
- 난이도 : level1
- 문제 분류 : 문자열
문제 풀이
내가 푼 문제 풀이
- 주어진 문자열과 숫자를 map으로 저장 후 해당 문자를 포함 한 경우 변경하도록 함
public static int solution(String s) {
int answer = 0;
Map<String, String> check = new HashMap<>();
check.put("zero","0");
check.put("one","1");
check.put("two","2");
check.put("three","3");
check.put("four","4");
check.put("five","5");
check.put("six","6");
check.put("seven","7");
check.put("eight","8");
check.put("nine","9");
for (String s1 : check.keySet()) {
if(s.contains(s1)){
s = s.replace(s1, check.get(s1));
}
}
answer = Integer.parseInt(s);
return answer;
}
참고할 만한 다른 풀이
- index와의 관계를 통하여 문자열 하나로 문제를 품
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);
}
}
문제 링크
숫자 문자열과 영단어
썸네일 출처
Image by storyset on Freepik