숫자 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