[백준/ 파이썬] 1464번 뒤집기 3

김민구·2022년 5월 5일
0

백준 풀이

목록 보기
9/18

백준 1464번 뒤집기 3

백준 1462번 문제는 사전순으로 가장 앞선것을 맨 앞으로 나오게 하는 문제입니다.
그래서 저는 end와 end-1의 크기비교와 end와 맨처음 문자열의 크기를 비교해서 True라면
end-1까지 뒤집어 주고. 뒤집은 다음에 다시 end와 end-1을 비교해서 end가 end-1보다 작다면 이번에는 end까지 뒤집어 주도록 했습니다.

코드는 다음과 같습니다.

#문자열을 뒤집어주는 함수
def reverse_string(left, right, iterable):
    l = left
    r = right-1
    while l < r:
        temp = iterable[r]
        iterable[r] = iterable[l]
        iterable[l] = temp
        l += 1
        r -= 1
    return iterable

s = input()
s = list(s)
n = len(s)

for i in range(0, n-1):
   end = i+1
   # end와 end-1 크기 비교, end와 맨 처음 문자 크기 비교
   if s[i] > s[end] and s[end] <= s[0]:
       reverse_string(0, end, s)
       #뒤집고 난 뒤 end와 end-1을 다시 비교해서 end가 더 작거나 같다면 다시한번 뒤집어 주어야함.
       if s[i] >= s[end]:
           reverse_string(0, end+1, s)

for el in s:
    print(el, end='')
profile
성장하는 개발자가 되고싶어요😀

0개의 댓글