Programmers Coding Quiz #10 자연수뒤집기

문제 설명

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

제한사항

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

입출력 예

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

풀이

def solution(n):
    return [int(v) for v in list(reversed(str(n)))]
  1. str로 자연수를 문자열로 바꾼다
  2. reversed로 문자열을 뒤집는다
  3. list로 문자열을 리스트로 변환한다
  4. 변환한 리스트를 for문을 통해 int로 일일히 바꿔준다

다른풀이

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

거의 비슷하지만 reversed대신에 [::-1]로 슬라이싱을 활용했습니다.
슬라이싱은 실행속도가 빠른편이라 시간복잡도 측면에서 한 수 위인 풀이법이라 할 수 있습니다.
그리고 다시보니 따로 문자열을 리스트를 변환하지 않았네요.

def digit_reverse(n):
    return list(map(int, reversed(str(n))))

여긴 MAP을 활용했네요. 문자열도 맵으로 매핑가능하군요

좋은 웹페이지 즐겨찾기