새소식

Programming/1 Day 1 Commit

[LeetCode] 13. Romans to Integer (Python)

  • -

Problem

 

Roman to Integer - 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

말그대로 로마어를 숫자로 바꾸는 프로그램이다. 

문제를 이해하는 것에는 어렵지 않았고 문자어로 쓰여있는 것을 각각 숫자로 변환하여 더해주면 되는 듯한 간단한 문제라고 생각이 되었다.

-> 하지만 단순히 이런 방식을 꾀하면 VI(6)와 IV(4)의 차이가 없어진다. 따라서 뒤에 큰 숫자가 오면 (큰 수 - 작은 수)의 방법을 취해야 하는 것을 알 수 있다. 

어떻게 풀어야 할지 막막했는데 문자열을 뒤집은 뒤 비교하면서 빼주는 식으로 진행하면 훨씬 수월하게 풀 수 있다. 

먼저 딕셔너리를 선언하여 각각 대칭되는 문자와 숫자를 넣어주도록 한다. 

 

class Solution:
    def romanToInt(self, s: str) -> int:
        romans = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}
        ctr = 'I'
        num = 0
        
        for i in s[::-1]:
            if romans[i] < romans[ctr]:
                num = num - romans[i]
            else: 
                num = num + romans[i]
            ctr = i
        return num

[Success] Romans to Interger

별로 안어려울 줄 알았는데 생각보다 어려워서 당황했던 문제,,ㅎ

역시 코딩은 쉬운게 없다 !

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.