문제
https://www.acmicpc.net/problem/21314
풀이
우선 "민겸 수"와 "민겸 숫자"는 다른 개념이다. 민겸 숫자가 모이면 민겸 수가 되는것에 주의하자
최소 최대값 모두 MK / K / MMK와 같이 K가 나올때까지 M의 갯수를 센다
최대값을 찾는법:
K가 나올 경우 K까지 포함하여 끊어서 해당하는 민겸숫자를 문제에 제시된 변환 표 대로 변환하여 이어준다.
끊어낸 마지막 덩어리가 M으로 끝날 경우 M의 갯수만큼 1로 채운 값을 이어준다.
최소값을 찾는법:
K가 나올 경우 K를 포함하지 않고 끊어서 해당하는 민겸숫자를 문제에 제시된 변환 표 대로 변환하여 이어준다.
(MMK와 같이 끊어진 경우 K를 포함하지 않고 MM까지만 변환)
그 이후 K를 포함하지 않고 끊었으므로 K의 민겸숫자에 해당하는 5를 이어준다
끊어낸 마지막 덩어리가 M으로 끝날 경우 그 덩어리만큼의 민겸 숫자를 구해 이어준다.
정답 코드
MKNum = input()
answerMax = ''
mCount = 0
for MKDigit in MKNum:
if MKDigit == 'K':
answerMax += str(5 * 10 ** mCount)
mCount = 0
else:
mCount += 1
answerMax += '1' * mCount
answerMin = ''
mCount = 0
for MKDigit in MKNum:
if MKDigit == 'K':
if mCount > 0:
answerMin += str(10 ** (mCount-1))
answerMin += '5'
mCount = 0
else:
mCount += 1
if mCount > 0:
answerMin += str(1* 10**(mCount-1))
print(answerMax)
print(answerMin)
'알고리즘 > 백준' 카테고리의 다른 글
[백준/Python] 20920번. 영단어 암기는 괴로워 (0) | 2025.02.04 |
---|---|
[백준/Python] 11726번. 2×n 타일링 (0) | 2024.11.20 |
[백준/Python] 20300번. 서강근육맨 (0) | 2024.11.17 |
[백준/Python] 1027번. 고층 건물 (0) | 2024.11.17 |
[백준/Python] 9935번. 문자열 폭발 (0) | 2024.11.15 |