본문 바로가기

Algorithms and Languages/파이썬 알고리즘 문제풀이

[Python/프로그래머스] 12932. 자연수 뒤집어 배열로 만들기

문제 접근 및 공부 내용, 풀이는 모두 하단 코드에 "주석"으로 포함되어 있으니 참고해주세요.

문제 유형 보기

더보기
더보기

리스트

https://school.programmers.co.kr/learn/courses/30/lessons/12932

입력 : 자연수 n

출력 : 뒤집은 리스트

n	return
12345	[5,4,3,2,1]

풀이

1차 풀이

# 1차 풀이 : C스럽게 풀이
def solution(n):
    answer = []
    while(n > 0):
        answer.append(n % 10)
        n = n // 10
    return answer

- C스럽게 푼 것 같음. 나중에 추가로 고민해보자.

- input이 문자열이면 그냥 split이나 list() 해서 map쓴 다음 reverse 메서드 쓰든 슬라이싱 쓰든 하면 바로 풀릴텐데.. 정수라서 이렇게 되네

2차 풀이

# 2차 풀이 : 파이써닉하게 풀이
def solution(n):
    n = str(n)
    answer = n[::-1]
    listed_answer = list(map(int, list(answer)))
    return listed_answer

- 피드백을 통해, str() 함수로 문자열로 바꾸고 시작하면 되겠다는걸 깨달음!!

- 문자열(또는 리스트) 뒤집기는 여러 방법이 있지만, 여기선 슬라이싱 사용

list() 함수 대신 split()으로도 풀 수 있을 것이다.


250217 2차 풀이

def solution(n):
    return list(map(int, sorted(str(n), reverse=True)))
    
def solution(n):
    return list(map(int, str(n)[::-1]))