숫자 n이 있다고 가정하고 숫자의 아무 곳에나 5를 삽입하여 얻을 수 있는 최대 숫자를 찾아야 합니다.
따라서 입력이 n =834와 같으면 출력은 8534가 됩니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
-
n> 0이면
-
s :=n을 문자열로
-
k :=빈 문자열
-
c :=거짓
-
s의 각 문자 i에 대해 수행
-
i <5이고 c가 False이면
-
k :=k 연결 "5" 연결 i
-
c :=참
-
-
그렇지 않으면
-
k :=k 연결 i
-
-
-
k를 정수로 반환
-
-
그렇지 않으면
-
k :=빈 문자열
-
s :=|n| 문자열로
-
c :=거짓
-
s의 각 문자 i에 대해 수행
-
i> 5이고 c가 False와 같으면
-
k :=k 연결 "5" 연결 i
-
c :=참
-
-
그렇지 않으면
-
k :=k 연결 i
-
-
-
c가 거짓이면
-
k :=k "5" 연결
-
-
-
리턴(-k)
예시
더 나은 이해를 위해 다음 구현을 살펴보겠습니다.
def solve(n): if n > 0: s = str(n) k = "" c = False for i in s: if int(i) < 5 and c == False: k += "5" + i c = True else: k += i return int(k) else: k = "" s = str(abs(n)) c = False for i in s: if int(i) > 5 and c == False: k += "5" + i c = True else: k += i if not c: k += "5" return int("-" + k) n = 834 print(solve(n))
입력
834
출력
8534