조컴퓨터

13. Roman to Integer 본문

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;
        
    }
}

 

그 결과...

 

 

효율은 좋지 않다. 

 

 

 

'LeetCode > Algorithms' 카테고리의 다른 글

*21. Merge Two Sorted Lists  (0) 2021.10.17
*20. Valid Parentheses  (0) 2021.10.17
**14. Longest Common Prefix  (0) 2021.10.14
9. Palindrome Number  (0) 2021.10.12
1. Two Sum  (0) 2021.10.11