본문 바로가기
프로그램

[파이썬] 문제 : 정수 뒤집기 (역순목록, a에 b승)

by 오디세이99 2024. 5. 10.
728x90
반응형

문제와 힌트에 주어진 조건으로 함

def explode(n):               # 인자로 전달 받은 영의 정수 뒤집어 역순 목록을 반환하는 함수
    lst = []                  # 반환할 목록 리스트 변수
    while n > 0:              # n을 10으로 나누어 줄여나가기 때문에 n > 0 면 반복 수행 
        tmp = n % 10          # n 을 10으로 나누어 나머지. 1234 일떄 4가 됨
        n = n // 10           # n 을 10으로 나누어 몫. 1234 일때 123 이 됨
        lst.append(tmp)       # 4,3,2,1 로 lst에 목록으로 추가
    return lst                # [4, 3, 2, 1]

def reverse(n):               # 인자로 전달 받은 영의 정수 뒤집어 반환하는 함수
    lst = explode(n)          # 정수의 역순 목록을 받아 옴. 1234 -> [4,3,2,1]
    reverse_n = 0             # 역순된 정수 변수
    for i in range(len(lst)): # 역순 목록(리스트) 요소수 만큼 반복
        # [4,3,2,1]일떄 4는 1000 자리가 되어야 함. pop(0)은 리스트 앞 요소를 꺼내오고 삭제 함.
        # 그런 후 len(lst) 하면 3 이 되고 10**3 으로 하면 10에 3승이 되어 1000이 됨. 4 * 1000 이 되어 4000이 됨.
        # 나머지도 300, 20, 1이 만들어져 계속 reverse_n ㅔ 더해져 역순 정수가 됨
        reverse_n += (lst.pop(0) * (10 ** len(lst)))
    return reverse_n

n = int(input('정수: '))
rtn = reverse(n)               # reverse() 함수 실행
print(rtn)                     # 결과 출력

 

일반적으로 간단히 하는 방법

lst = str(1234)
reverse_n = int(lst[::-1])
print(reverse_n)
728x90
반응형

댓글