https://www.hackerrank.com/challenges/bigger-is-greater/problem?isFullScreen=true
def biggerIsGreater(w):
#w를 list로 만들기
w = list(w)
#i번째가 i+1보다 작으면 반복을 멈추기
i = len(w) - 2
while i >= 0 and w[i] >= w[i+1]:
i -= 1
#i가 -1이면 찾을 수 없는 것.
if i == -1:
return "no answer"
#i번째보다 뒤에서 i보다 큰 것 찾기
j = len(w) - 1
while w[j] <= w[i]:
j -= 1
#i번째와 j번째 교환
w[i], w[j] = w[j], w[i]
#i번째 뒤는 정렬
w[i+1:] = sorted(w[i+1:])
return ''.join(w)
728x90
'파이썬 알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스] Lv2. 귤 고르기 파이썬 (2) | 2024.02.03 |
---|---|
[프로그래머스] 로그인 성공? (0) | 2024.02.03 |
[HackerRank] Grading Students 파이썬 (0) | 2024.02.03 |
[프로그래머스] Lv0. 외계어사전 파이썬 (0) | 2024.02.02 |
[프로그래머스] Lv0. 안전지대 (1) | 2024.02.02 |