민겸 숫자는 0 이상의 정수 N에 대해 10^N 또는 5 × 10^N 꼴의 십진수를 대문자 M
과 K
로 이루어진 문자열로 표기한다.
10^N 꼴의 십진수는 N + 1개의 M
으로, 5 × 10^N 꼴의 십진수는 N개의 M
뒤에 1개의 K
를 이어붙인 문자열로 나타낸다.
변환 전 | 변환 후 |
---|---|
1 | M |
5 | K |
10 | MM |
50 | MK |
100 | MMM |
500 | MMK |
1000 | MMMM |
5000 | MMMK |
MKKMMKMM의 최댓값, 최솟값 규칙
(1) 최댓값
MK K MMK MM = 50550011 (11 > 10)
- K가 나오기전까지 M을 붙인다. → 5 + 0 x M 갯수
- M으로 끝날 시 1 x M의 개수를 해준다.
(2) 최솟값
M K K MM K MM = 15510510
- K가 나오면 1 + 0 x (M 갯수 - 1), 뒤에 5를 붙여준다.
- M으로 끝날 시 1 + 0 x (M 갯수 - 1)을 해준다.
import sys
read = sys.stdin.readline
mk = read().rstrip()
bigresult = ''
smallresult = ''
cnt = 0
for in_mk in mk:
if in_mk == 'K':
bigresult += ('5' + '0'*cnt)
cnt = 0
else:
cnt += 1
if cnt != 0:
bigresult += ('1'*cnt)
cnt = 0
for in_mk in mk:
if in_mk == 'K':
if cnt >= 1:
smallresult += ('1' + '0' * (cnt-1))
cnt = 0
smallresult += '5'
else:
cnt += 1
if cnt != 0:
smallresult += ('1' + '0' * (cnt-1))
print(bigresult)
print(smallresult)