자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
n | return |
---|---|
12345 | [5,4,3,2,1] |
def solution(n):
n = str(n)
answer = [int(n[i]) for i in range(len(n)-1,-1,-1)]
return answer
자연수 n이 입력될 때, 그 수를 뒤집어서 list에 넣어준다. 나는 숫자를 문자로 만들어서 자리수에서 접근할 수 있게 했다. 그래서 문자열의 가장 끝에서부터 차례대로 리스트에 넣어주는데 대신 int형으로 변환하여 넣어주는 방식을 택했다.
문자형태로 하면 더 큰 수가 들어갔을 때, 계산 속도가 느릴 수 있다고 알고 있어서 다른 방식의 풀이도 참고해봤다.
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() 함수)