๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿƒ algorithm/leetcode

LeetCode 13 - Roman to Integer (Easy)

by HandHand 2023. 4. 24.

 

๐Ÿ’ก ๋ฌธ์ œ

LeetCode - 13๋ฒˆ

 

๐ŸŽฏ ํ’€์ด ๊ณผ์ •

๋กœ๋งˆ ์ˆซ์ž๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

๋กœ๋งˆ ์ˆซ์ž๋Š” ๊ฐ์‚ฐ, ๊ฐ€์‚ฐ ์—ฐ์‚ฐ๋ฒ•์„ ํ•จ๊ป˜ I, V, X, L, C, D, M ์˜ ๋ฌธ์ž๋ฅผ ๋‚˜์—ดํ•˜์—ฌ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ์— ์•ž ์ž๋ฆฌ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ทธ ๋‹ค์Œ ์ˆซ์ž์™€ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ•ฉ์‚ฐํ•ด์•ผํ•  ํฌ๊ธฐ๋ฅผ ์•Œ์•„๋ƒ…๋‹ˆ๋‹ค.

์ด๋•Œ ๋ฐ˜๋ณต๋ฌธ ๋Œ€์‹  ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข€ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿ‘จโ€๐Ÿ’ป ์ฝ”๋“œ

/**
 * @param {string} s
 * @return {number}
 */
var romanToInt = function(s) {
    const roman = {
        'I': 1,
        'V': 5,
        'X': 10,
        'L': 50,
        'C': 100,
        'D': 500,
        'M': 1000,
    }

    function transform(here) {
        if (here >= s.length) {
            return 0
        }

        if (here + 1 < s.length && roman[s[here]] < roman[s[here + 1]]) {
            return transform(here + 2) + roman[s[here + 1]] - roman[s[here]]
        } else {
            return transform(here + 1) + roman[s[here]]
        }
    }

    return transform(0)
};
๋ฐ˜์‘ํ˜•

'๐Ÿƒ algorithm > leetcode' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

LeetCode 1603 - Design Parking System (Easy)  (0) 2023.04.24
LeetCode 15 - 3Sum (Medium)  (0) 2023.04.24
LeetCode 994 - Rotting Oranges (Medium)  (0) 2023.04.24
LeetCode 24 - Swap Nodes in Pairs (Medium)  (0) 2023.02.20
LeetCode 35 - Search Insert Position (Easy)  (0) 2023.02.20

๐Ÿ’ฌ ๋Œ“๊ธ€