Roman to Integer

Sett·2021년 7월 6일
0

문제

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

문제 접근

  • C++ map 이용한 것처럼 Dictionary 사용해서 문제 해결하려고 했다.
  • 자꾸 문제 전체의 조건을 파악하려고 하지 않고, 단순하게 원하는 값의 Index를 찾아서 이것을 비교하려는 습관 때문에 연산도 많아지고 코드도 길어지고, 오답을 향해 가는 것 같았다

소스 코드

func romanToInt(_ s: String) -> Int {
    var answer: Int = 0
    let numberTable: [String: Int] = ["I": 1, "V":5, "X":10, "L":50, "C":100, "D":500, "M":1000]
    var before = 0
    for string in s.reversed() {
        let current = numberTable[string.description]
        if current! >= before {
            before = current!
            answer += current! * 1
        }
        else {
            before = current!
            answer += current! * -1
        }
    }
    return answer
}
profile
안녕하세요

0개의 댓글

관련 채용 정보