일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- dsf
- leetcode
- docker image
- 2023년 목표
- MySQL
- Spark
- 데이터 엔지니어
- 백준 온라인 저지
- 백준온라인저지
- hackerrank
- Airflow
- SQL
- telegram
- docker
- airflow architecture
- datacamp
- 빅데이터를 지탱하는 기술
- Pseudo Lab
- BOT
- Python
- docker container
- Dynamic Programming
- 프로그래머스
- terraform
- Data Engineering
- 그리디
- data_engineer
- delete join
- 알고리즘
- airflow webserver
Archives
- Today
- Total
Lim Seunghyun Space
[HackerRank] Validating Roman Numerals 본문
문제 : 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
'Algorithm > 문제' 카테고리의 다른 글
[Leetcode] Climbing stairs (0) | 2021.12.13 |
---|---|
[프로그래머스] 문자열 압축 (0) | 2021.12.05 |
[백준 온라인 저지] 01타일 (0) | 2021.11.11 |
[백준 온라인 저지] 유기농 배추 (0) | 2021.11.10 |
[백준 온라인 저지] 근우의 다이어리 꾸미기 (0) | 2021.10.31 |