[leetcode] Medium-12번. Integer to Roman 문제풀이

반응형
728x90
반응형

문제

https://leetcode.com/problems/integer-to-roman/

 

Integer to Roman - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

 

 

 

풀이코드

package SITE03_leetcode.medium;

import java.util.*;
import java.util.stream.Collectors;

/**
 * https://leetcode.com/problems/integer-to-roman/
 */
public class M008_leetCode12_Integer_to_Roman {

    public static TreeMap<Integer, String> map = new TreeMap<>();

    static {
        map.put(1,"I");
        map.put(5, "V");
        map.put(10, "X");
        map.put(50, "L");
        map.put(100, "C");
        map.put(500, "D");
        map.put(1000, "M");
        map.put(4, "IV");
        map.put(9, "IX");
        map.put(40, "XL");
        map.put(90, "XC");
        map.put(400, "CD");
        map.put(900, "CM");
    }

    public static void main(String[] args) {
        M008_leetCode12_Integer_to_Roman solution = new M008_leetCode12_Integer_to_Roman();
        System.out.println(solution.intToRoman(20));
    }

    public String intToRoman(int num) {
        StringBuilder result = new StringBuilder();

        while (num != 0) {
            // 제공된 키 값보다 같거나 작은 값 중 가장 큰 키의 Entry 를 반환
            Map.Entry<Integer, String> entry = map.floorEntry(num);
            result.append(entry.getValue());
            num -= entry.getKey();
        }

        return result.toString();
    }
}

 

 

 

TreeMap

위 풀이코드를 이해하기 위해서 정리한 TreeMap 을 공부하자.

 

https://devfunny.tistory.com/577

 

Java 코드로 TreeMap 정리하기

TreeMap TreeMap 이란 이진트리를 기반으로 한 Map 컬렉션이다. TreeMap 은 아래와 같이 Key 와 값이 저장된 Map, Entry를 저장한다. 이진검색트리의 형태로 key-value 쌍으로 이루어진 데이터를 저장하는데에

devfunny.tistory.com

 

 

반응형

Designed by JB FACTORY