자기개발👨‍💻/코딩 알고리즘

[python] 백준 2607 로마 숫자 (실패70 성공 20 ?? 10)

천숭이 2020. 8. 27. 19:51

https://www.acmicpc.net/problem/2608

 

2608번: 로마 숫자

첫째 줄과 둘째 줄에 하나씩 로마 숫자로 표현된 수가 주어진다. 입력된 각 수는 2000 보다 작거나 같고, 두 수의 합은 4000보다 작다.

www.acmicpc.net

# rom ={"M":1000,"CM":900,"D":500,"CD":400,"C":100,"XC":90,"L":50,"XL":40}
cnt=0
result =0
while(cnt<2):
    inp=input()
    for i in range(len(inp)):
        for j in range(i+1,len(inp)):
            if inp[i:j]=="CM":
                result += 900
                inp=inp[0:i]+inp[j:]
            elif inp[i:j]=="CD":
                result+=400
                inp=inp[0:i]+inp[j:]
            elif inp[i:j]=="XC":
                result+=90
                inp=inp[0:i]+inp[j:]
            elif inp[i:j]=="XL":
                result+=40
                inp=inp[0:i]+inp[j:]
    
    for i in inp:
        if i=="I":
            result+=1
        elif i=="V":
            result+=5
        elif i=="X":
            result+=10
        elif i=="L":
            result+=50
        elif i=="C":
            result+=100
        elif i=="D":
            result+=500
        elif i=="M":
            result+=1000

    cnt+=1
    #print(inp)
    print(result)