728x90
반응형
문제 설명
1. 로마 숫자 2개가 주어진다.
2. 각 숫자들은 해당 방식으로 주어진다.
3. 작은 숫자가 큰 수 전에 오는 경우는 한 경우밖에 없으며, 해당 경우 큰 수에서 작은 수를 빼 준다.
ex ) IV -> 4, XC -> 9, CM -> 900
4. III의 경우 3이 되며, 같은 알파뱃은 3번 연속으로 사용할 수 있다.
5. V, L, D는 한 번 밖에 사용할 수 있다.
풀이 과정
1. [1, 2, 3, 4, 5] 다섯 가지를 구하는 모든 방법이 존재한다.
2. java에서 문자열을 변경하는 방법을 사용하면 IV, XC처럼 특수한 경우를 쉽게 구할 수 있을 것이다.
3. 예를 들어 IV -> A, XC -> B로 하면 [A=4] [B=9] 이렇게 바로바로 판단 할 수 있을 것이다.
4. 이런 방식을 사용하면 모든 로마 숫자를 char을 이용하여 하나씩 판별 가능할 것이다.
5. 구한 아라비아 숫자를 다시 로마 숫자로 바꾸는 방법은, 반대로 높은 숫자부터 낮은 숫자로 하나씩 판단하면서 빼주고, 해당 숫자를 기입하면 될 것이다.
코드
문제는 굉장히 쉬웠는데, 효율적인 방법을 생각하지는 못한 것 같다. 더 쉬운 방법이 있을 것 같다.
반응형
'알고리즘 공부' 카테고리의 다른 글
[백준 10775번] 공항 - java (0) | 2021.05.28 |
---|---|
[백준 16953번] A -> B - java (0) | 2021.05.20 |
[백준 1806번] 부분합 - java (0) | 2021.05.10 |
[백준 1700번] 멀티탭 스케줄링 - java (0) | 2021.05.09 |
[백준 1062번] 가르침 - java (0) | 2021.05.09 |