[Java] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด
https://programmers.co.kr/learn/courses/30/lessons/81301?language=java
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด
๋ค์ค์ ํ๋ก๋๊ฐ ์ซ์๋์ด๋ฅผ ํ๊ณ ์์ต๋๋ค. ๋ค์ค๊ฐ ํ๋ก๋์๊ฒ ์ซ์๋ฅผ ๊ฑด๋ฌ ๋ ์ผ๋ถ ์๋ฆฟ์๋ฅผ ์๋จ์ด๋ก ๋ฐ๊พผ ์นด๋๋ฅผ ๊ฑด๋ค์ฃผ๋ฉด ํ๋ก๋๋ ์๋ ์ซ์๋ฅผ ์ฐพ๋ ๊ฒ์์ ๋๋ค. ๋ค์์ ์ซ์์ ์ผ๋ถ ์
programmers.co.kr


[๋ฌธ์ ํ์ด]
- map์ ์๋จ์ด๋ฅผ key๊ฐ์ผ๋ก ํ๊ณ , Stringํ์์ ์ซ์๋ฅผ value๋ก ๊ฐ์ ๋ฃ์ด์ค๋๋ค.
- ๊ฐ ๋ฌธ์๋ง๋ค ๊ณ ์ ์ ์๋ณ๊ฐ์ ๋ง๋ค์ด์ lenMap์ ๊ธธ์ด๋ฅผ ์ ์ฅํฉ๋๋ค.: ์๋จ์ด์ ์ 2๊ธ์๋ฅผ key๊ฐ์ผ๋ก ์ฌ์ฉํ์ต๋๋ค.- String s๋ฅผ for๋ฌธ์ผ๋ก ๋๋ฉด์ ๋ณํ์ ํฉ๋๋ค.: ์ซ์๊ฐ ๋์จ๋ค๋ฉด ๊ทธ๋๋ ์ ์ฅ: ๋ฌธ์๊ฐ ๋์จ๋ค๋ฉด lenMap์ํตํด ๊ทธ ๊ธธ์ด๋งํผ ์๋ฅธ ์๋จ์ด๋ฅผ map์ ๋ฃ์ด ๊ตฌํ ์ซ์๋ฅผ ์ ์ฅ
[์ ๋ต ์ฝ๋]
import java.util.*;
class Solution {
/*
"on" ๋ฝ์
lenMap.get("on") = 3
3๊ฐ ์ง๋ฅด๋ฉด "one"์ป์
map.get("one") = "1"
str์ 1๋ถ์
*/
public static Map<String, String> map = new HashMap<>();
public static Map<String, Integer> lenMap = new HashMap<>();
public int solution(String s) {
int answer = 0;
String str = "";
putMap();
putLenMap();
int index = 0;
while(index < s.length()) {
if(s.charAt(index) >= '0' && s.charAt(index) <= '9') {
str += s.charAt(index);
index++;
//substring();
} else {
int len = lenMap.get(s.substring(index, index + 2));
String key = s.substring(index, index + len);
str += map.get(key);
index += len;
}
}
answer = Integer.parseInt(str);
return answer;
}
// ์ซ์ ๋ณํ๊ฐ
public static void putMap() {
map.put("zero","0");
map.put("one","1");
map.put("two","2");
map.put("three","3");
map.put("four","4");
map.put("five","5");
map.put("six","6");
map.put("seven","7");
map.put("eight","8");
map.put("nine","9");
}
// ๊ธธ์ด ์๋ณ
public static void putLenMap() {
lenMap.put("ze",4);
lenMap.put("on",3);
lenMap.put("tw",3);
lenMap.put("th",5);
lenMap.put("fo",4);
lenMap.put("fi",4);
lenMap.put("si",3);
lenMap.put("se",5);
lenMap.put("ei",5);
lenMap.put("ni",4);
}
}