Lim Seunghyun Space

[HackerRank] Validating Roman Numerals 본문

Algorithm/문제

[HackerRank] Validating Roman Numerals

Lim Seung Hyun 2021. 11. 21. 13:22

문제 : https://www.hackerrank.com/challenges/validate-a-roman-number/problem?isFullScreen=true 

 

Validating Roman Numerals | HackerRank

Use regex to validate Roman numerals.

www.hackerrank.com

 

 

문제 해설

  • 정규표현식을 이용하여 주어진 로마숫자가 유효한지 판단하는 로직

 

 

문제 풀이 (Python3)

regex_pattern = r"^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$"	# Do not delete 'r'.

import re
print(str(bool(re.match(regex_pattern, input()))))
  • 로마 숫자에 대한 정규 표현식은 "^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$" 이지만 문제는 3999까지만 표현해주고 있어 M의 갯수 범위가 0~3까지 제한해둬야 한다.
    • ^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$
  • 로마 숫자 표기법에 대한 WIKI 문서 :https://ko.wikipedia.org/wiki/%EB%A1%9C%EB%A7%88_%EC%88%AB%EC%9E%90
 

로마 숫자 - 위키백과, 우리 모두의 백과사전

로마 숫자는 고대 로마에서 쓰인 기수법이다. 로마 문자에 특정 수를 대입하고 이를 조합하여 수를 나타낸다. 1에서 10까지는 I, II, III, IV, V, VI, VII, VIII, IX, X 와 같이 표기한다.11은 XI이라고 표기

ko.wikipedia.org

 

728x90