LeetCode/Algorithms
13. Roman to Integer
챠오위
2021. 10. 13. 23:04


String s의 값을 한글자씩 잘라내서 배열한다.
배열한 이웃한 글자는 value값을 기준으로 크기 비교한다.
앞 글자의 value값의 크기가 크면 더하고, 작으면 뺀다. ex) 4 → IV, 9 → IX
for문이 닫힌 후, 배열의 마지막 값에 해당하는 value값을 더한다.
class Solution {
public int romanToInt(String s) {
HashMap<String,Integer> map = new HashMap();
map.put("I",1);
map.put("V",5);
map.put("X",10);
map.put("L",50);
map.put("C",100);
map.put("D",500);
map.put("M",1000);
int nums = 0, cnt = 0;
String[] Array = s.split("");
for(int i=0; i<Array.length-1; i++){
if( map.get(Array[i]) >= map.get(Array[i+1]) ) {
nums += map.get(Array[i]);
cnt++;
} else {
nums -= map.get(Array[i]);
cnt++;
}
}
nums += map.get(Array[cnt]);
return nums;
}
}
그 결과...

효율은 좋지 않다.