티스토리 뷰

Integer to Roman


입출력 예제

num :  1994

return : MCMXCIV


해결 방법

로마자를 해결하기 위해서는 로마자의 규칙을 알아야 합니다

1부터 10까지 로마자로 표현하면

II 

III 

IV 

VI 

VII 

VIII 

IX 

여기서 저는 10, 9, 5, 4, 1, 이렇게 구분을 지었습니다.

그럼 1000의 자리수부터 구분 지으면 

1000 

900 

500 

400 

100 

90 

50 

40 

10 

 M

CM 

CD 

XC 

XL 

IX 

IV 

이렇게 구분 지을 수 있고 이것을 거스름돈 문제 처럼 정수값이 해당위치에 나눠질수 있다면 나누는 몫만큼 문자를 넣어주면 됩니다.


소스 코드

public class Solution {
	public String intToRoman(int num) {
		StringBuilder answer=new StringBuilder("");
		int[] value= {1000,900,500,400,100,90,50,40,10,9,5,4,1};
		String[] symbol= {"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
		
		for(int i=0;i<value.length;i++) {
			if(num/value[i]>0) {
				for(int k=0;k<num/value[i];k++) {
					answer.append(symbol[i]);
				}
				
				num%=value[i];
			}
		}
		return answer.toString();
	}

}


'알고리즘 > LeetCode(JAVA)' 카테고리의 다른 글

[LeetCode/알고리즘] median of two sorted arrays  (0) 2019.02.08
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함