문제 내용
https://programmers.co.kr/learn/courses/30/lessons/81301
문제 접근 방법
난이도가 LV1이라 그런지 쉽게 풀린 문제다.
생각한 방법은.
zero~nine까지 String 배열을 만들고
HashMap에 ket엔 영단어, value엔 숫자(문자)를 각각 맞게 넣어준다. ex) (zero, 0) (one, 1) ....
작업이 완료되면 s 문자열의 문자를 앞에서부터 하나씩 검사해서
빈 문자열(result)에 key값이 만들어지면 key에 해당하는 value를 붙여주고
만약 s문자열에서 문자가 숫자로 나온다면 값이 value에 있는지 검사 후에
result에 바로 숫자를 붙여주면된다.
풀이
public static int solution(String s) {
int ans=0;
HashMap<String, String> numsMap = new HashMap<String, String>();
String[] alpha = {"zero","one","two","three","four","five","six","seven","eight","nine"};
String numStr = "";
String result = "";
for(int i=0; i<10; i++) {
String nums = Integer.toString(i);
numsMap.put(alpha[i], nums);
}
for(int i=0; i<s.length(); i++) {
numStr += String.valueOf(s.charAt(i));
if(numsMap.containsKey(numStr)) {
result += numsMap.get(numStr);
numStr = "";
}else if(numsMap.containsValue(numStr)) {
result += numStr;
numStr = "";
}
}
ans = Integer.parseInt(result);
return ans;
}
마치며
레벨1 문제라서 그런지 수월하게 풀린 문제이다. 레벨2도 수월하게 풀고싶은데 ㅠ
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[JAVA] 프로그래머스 - 키패드 누르기 (0) | 2021.11.10 |
---|---|
[JAVA] 프로그래머스 - 카카오프렌즈 컬러링북 (DFS , BFS) (0) | 2021.11.07 |
[JAVA] 프로그래머스 - 오픈 채팅방 (0) | 2021.11.05 |
[JAVA]프로그래머스 - 로또의 최고 순위와 최저 순위 (0) | 2021.11.04 |
[JAVA]프로그래머스 - 문자열 압축 (KaKao) (0) | 2021.11.03 |