본문 바로가기
오답노트/PYTHON_2차

(17번) LIST 거꾸로 하기 - 들여쓰기 중요 .reverse(공백) , [::-1]

by 쿙이콩 2025. 6. 17.
728x90
반응형

17. 자연수 뒤집어 배열로 만들기

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

제한 n은 10,000,000,000이하인 자연수

 

풀이1. .append() , .reverse() 사용

def solution(n):
    answer = []
    for i in str(n):
        answer.append(int(i))
    answer.reverse()
    return answer

오답

1) 문자화 -> 정수화 -> append -> 리스트니까 reverse()

2) answer.reverse()의 들여쓰기 위치 주의

들여쓰기의 중요성
def solution(n):
    answer = []
    for char in str(n):
        answer.append(int(char))
        answer.reverse()
    return answer
def solution(n):
    answer = []
    for i in str(n):
        answer.append(int(i))
    answer.reverse()
    return answer
for문 반복할 때마다 reverse를 처리함
문제는 예를 들어 n = 123이면
1 추가 > 1 reverse > 1
2 추가 > 1, 2 reverse > 2, 1
3 추가 > 2, 1, 3 reverse > 3, 1, 2가 되어버림!
for문이 다 끝나고 난 뒤,그 최종 묶음 리스트에 대해서
딱 1번 reverse 진행

 

3) ★

.sort() 와 .reverse() 는 리스트 자체를 직접 변경하고, 반환값은 None임. 따라서, return전에 먼저 호출해서 리스트를 정렬/역순 바꾼 후에, return answer(리스트 자체)를 하면 결과 나옴

그러나 [::-1] 과 sorted(list)의 경우, 아예 새로운 리스트를 반환하므로 return 에 바로 쓸 수 있음

풀이2. 리스트 컴프리헨션, [::-1] 사용

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

 

728x90
반응형