[Python] 자연수 뒤집어 배열로 만들기

쥬쥬스·2023년 8월 23일
0
post-thumbnail

문제

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.

제한 조건

  • n은 10,000,000,000이하인 자연수입니다.

입출력 예

nreturn
12345[5,4,3,2,1]

Solution

def solution(n):
    n = str(n)
    answer = [int(n[i]) for i in range(len(n)-1,-1,-1)]
    return answer

자연수 n이 입력될 때, 그 수를 뒤집어서 list에 넣어준다. 나는 숫자를 문자로 만들어서 자리수에서 접근할 수 있게 했다. 그래서 문자열의 가장 끝에서부터 차례대로 리스트에 넣어주는데 대신 int형으로 변환하여 넣어주는 방식을 택했다.
문자형태로 하면 더 큰 수가 들어갔을 때, 계산 속도가 느릴 수 있다고 알고 있어서 다른 방식의 풀이도 참고해봤다.

Other Solution

return list(map(int, reversed(str(n))))

reverse를 사용해서 거꾸로 할 수 있었다!!!! 자주 쓰지 않으면 역시 다 까먹는 것 같다. 문자를 거꾸로 해서 숫자로 mapping하고 list로 만들어주는 것

return [int(i) for i in str(n)][::-1]

굳이 range를 돌지 않아도 문자열로 n을 만들고 하나씩 int형으로 저장한다음에 거꾸로 돌려서 해결할 수도 있다.

둘다 깔끔한 풀이다. reverse나 [::-1]을 사용해서 반전시킬 수 있음을 기억해두자

참고자료

파이썬의 reversed() 함수로 거꾸로 루프 돌리기 (vs. slicing 연산자 & reverse() 함수)

profile
느려도... 꾸준히.....🐌

0개의 댓글