21314 - 민겸 수

LeeKyoungChang·2022년 6월 8일
0

Algorithm

목록 보기
154/203
post-thumbnail

📚 21314 - 민겸 수

민겸 수

 

이해

민겸 숫자는 0 이상의 정수 N에 대해 10^N 또는 5 × 10^N 꼴의 십진수를 대문자 M과 K로 이루어진 문자열로 표기한다. 
10^N 꼴의 십진수는 N + 1개의 M으로, 5 × 10^N 꼴의 십진수는 N개의 M 뒤에 1개의 K를 이어붙인 문자열로 나타낸다.

변환 전변환 후
1M
5K
10MM
50MK
100MMM
500MMK
1000MMMM
5000MMMK

 

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)
스크린샷 2022-06-09 오전 12 08 36

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글