숫자 n이 있다고 가정하고 숫자의 아무 곳에나 5를 삽입하여 만들 수 있는 최대 숫자를 찾아야 합니다.
따라서 입력이 n =826과 같으면 출력은 8526이 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- temp :=n을 문자열로
- ans :=-inf
- 0에서 temp 크기의 범위에 있는 i에 대해
- cand :=인덱스 0에서 i까지 temp의 하위 문자열 '5' 연결 인덱스 i에서 끝까지 temp의 하위 문자열 연결
- i가 0과 같고 temp[0]이 '-'와 같으면
- 다음 반복으로 이동
- ans :=ans의 최대값, cand 수
- 반환
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
예
class Solution:
def solve(self, n):
temp = str(n)
ans = float('-inf')
for i in range(len(temp) + 1):
cand = temp[:i] + '5' + temp[i:]
if i == 0 and temp[0] == '-':
continue
ans = max(ans, int(cand))
return ans
ob = Solution()
print(ob.solve(826)) 입력
826
출력
8526