코딩테스트/프로그래머스

[프로그래머스] [Level 1] 자연수 뒤집어 배열로 만들기

박소민 2022. 2. 19. 21:26
문제) 자연수 뒤집어 배열로 만들기
 

코딩테스트 연습 - 자연수 뒤집어 배열로 만들기

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345

programmers.co.kr

 

  • 내 풀이 1

- 오류: 문제가 12345 에서 54321이 되다보니 내림차순 정렬로 착각

→ 이 문제는 반대로 뒤집는 것

- 정수형 n을 str해서 분리해서 list에 담되 정수형으로 담고 싶을 경우 map 함수 사용

def solution(n):
    answer = list(map(int,str(n)))
    answer.sort(reverse=True)
    return answer

 

  • 내 풀이

- 리스트 역순으로 불러올 때 [길이-1]부터 0까지 → range(len(num)-1, -1, -1)

def solution(n):
    num = list(map(int,str(n)))
    answer=[]
    for i in range(len(num)-1,-1,-1):
        answer.append(num[i])
    return answer
    
print(solution(12345))
#결과
[5,4,3,2,1]

 

  • 다른 사람 풀이1
def solution(n):
	return list(map(int, reversed(str(n))))

reversed(x) 함수 사용

- list로 변환해주기 

reverse 함수 추가적인 내용: [Python] reverse VS reversed 함수 :: SOMDAY (tistory.com)

 

  • 다른 사람 풀이2
def solution(n):
  return [int(i) for i in str(n)][::-1]

- str값은 for문으로 바로 한 글자씩 불러올 수 있음: for i in str(n)

- [::-1] : C가 음수이므로 마지막부터 첫번째까지 한 칸 씩 (역순)