16922번 로마 숫자 만들기
아만다. 루게리는 수상 경력이 있는 언론인이자 전 로마 거주자로, 로마 제국에 관한 여러 다큐멘터리에 보도하고 출연했으며, 도시를 최대한 사용하는 것에 대한 가이드북인 공개된 로마 안내서를 작성했습니다. 한때 300에이커에 달했던 이 고대 궁전은 서기 64년 네로 황제에 의해 건설되었는데, 이는 역사에 로마가 불탄 동안 빈둥빈둥 놀던 황제와 같은 인물입니다. 정확할 것 같지는 않지만, 우리는 그가 그의 꿈의 궁전을 짓기 위해 개간된 땅을 사용함으로써 64 CE의 큰 화재로부터 이익을 얻었다는 것을 알고 있습니다.
고대 역사가 수에토니우스에 따르면, 궁전은 금, 보석, 조개껍질로 장식되어 있었고, 손님들을 행복하게 하기 위해 순환하는 원형 연회장이 있었습니다. 이와 같은 여러가지 세부사항들 중 많은 것들이 사라졌지만, 바느질된 천장에서부터 화려한 프레스코화에 이르기까지 깜짝 놀랄만한 숫자가 남아 있습니다.
아라비아 숫자 체계로의 전환
힌두아랍 체계라고도 보고된 아라비아 숫자 체계는 수학과 상업에 혁명을 일으켰습니다. 기원전 6세기경 인도에서 시작된 아라비아 숫자는 이후 몇 세기에 걸쳐 아랍 수학자들에 의해 사용되었습니다. 서양에서 이 숫자는 초기에는 의심과 저항에 부딪혔습니다. 10세기에 아랍 수학자들의 작품을 라틴어로 번역하여 유럽에 소개되었지만, 13세기에 이르러서야 널리 사용되기 시작했습니다. 9세기에 페르시아의 수학자 알크와리즈미AlKhwarizmi가 힌두 숫자로 계산하기Kitab alJabr라는 책에서는 대수의 개념과 아라비아 숫자를 이슬람 세계에 소개했습니다.
아라비아 숫자들은 스페인의 아랍 학자들을 통해 유럽으로 전파되어 수학의 역사에 필요한 전환점이 되었습니다.
로마 숫자의 영향력
사회적 영향력 입장에서 로마 숫자 체계는 로마 제국 생활의 여러가지 측면에 필수적인 요소였습니다. 상업에서는 가격 책정 및 거래 기록을 위해, 정부에서는 법률 및 행정 문서 작성을 위해, 일상생활에서는 날짜 기록 및 시간 표시를 위해 사용되었습니다. 예를 들어 로마력은 로마 숫자를 사용하여 요일과 월을 표시했고 해시계와 이후 기계식 시계는 시간을 표시하는 데 사용했습니다.
로마 숫자 체계의 개선과 연관된 저명한 역사적 인물 중 한 명은 초대 로마 황제인 아우구스투스입니다.
그의 통치는 필요한 문화 개혁과 통합의 시기였습니다. 그의 통치 아래 로마 숫자가 표준화되기 시작했고, 이는 공공 행정과 상업에서 숫자 사용을 크게 촉진했습니다. 또한 서기 1세기에 살았던 로마의 학자 플리니우스 원로원은 그의 저서 자연사에서 로마 숫자에 대한 가장 초기의 기록 중 하나를 제공했습니다.
셋 이상의 숫자
인류가 사용한 숫자의 형태를 보시면 1, 2, 3까지가 막대 모양의 기호를 하나씩 나열하는 방법이었다면, 4부터는 좀 더 어려운 기호로 변환됩니다. 한자의 경우에는 는 앞의 1, 2, 3과는 다르게 좀 더 어려운 형태로 변경하는 것을 볼 수 있습니다. 로마숫자의 경우에는 iv형태입니다. i를 네 번 사용하는 대신에 iv로 변경하는 것을 볼 수 있습니다. 이 숫자에는 뺄셈의 원리가 적용됩니다. V가 기본이며 이 숫자의 오른쪽은 덧셈, 왼쪽은 뺄셈을 의미합니다.
iv는 v에 해당하는 5에 왼쪽에 i1이 있으므로 그 값은 514가됩니다. 이에 반면 만약 vi처럼 오른쪽에 위치하면 v5i16이 됩니다. 10을 의미하는 x의 경우에도 왼쪽에 i가 있다면 9가 되고, 오른쪽에 i가 있다면 11을 나타냅니다.
셋 이상의 숫자는 외국어 표현에서도 등장합니다.
1 나의 풀이법 풀이 접근 과정 newNum이 0이 아니면 while문을 통해 반복문을 돌린다. newNum 값이 map의 특정 범위에 존재하면, 해당하는 로마 숫자를 answer에 더해주고, newNum에서 값을 빼줍니다. 그런 식으로 newNum이 돌 때까지 반복합니다. 2000의 경우, 범위에 걸리지 않으므로 따로 예외 처리를 합니다. 사안을 정리하다보니 큰 수부터 돌고, 큰 수보다. 작아지면 해당 값을 삭제하면 더 간단하게 풀 수 있었을 텐데 아쉬움이 남았다.
최종 소스코드 기존과 그대로 map을 만들지만 큰 숫자부터 만들었다. 만약 map이 비어있지 않고, newNum이 0이 아닌 상태인 경우에 반복문을 돈다.
Comment
이번 나의 풀이는 썩 여유롭지 못했다. 큰 수부터 돌고, 큰 수보다. 작아지면 해당 값을 삭제하면 더 간단하게 풀 수 있었을 텐데 아쉬움이 남아서 다시 풀었다. 놀랍게도 두 풀이의 성능 차이는 그닥 크지 않았습니다.
자주 묻는 질문
아라비아 숫자 체계로의
힌두아랍 체계라고도 보고된 아라비아 숫자 체계는 수학과 상업에 혁명을 일으켰습니다. 더 알고싶으시면 본문을 클릭해주세요.
로마 숫자의 영향력
사회적 영향력 입장에서 로마 숫자 체계는 로마 제국 생활의 여러가지 측면에 필수적인 요소였습니다. 자세한 내용은 본문을 참고 해주시기 바랍니다.
셋 이상의 숫자
인류가 사용한 숫자의 형태를 보시면 1, 2, 3까지가 막대 모양의 기호를 하나씩 나열하는 방법이었다면, 4부터는 좀 더 어려운 기호로 변환됩니다. 자세한 내용은 본문을 참고하시기 바랍니다.