데이터 분석/Python

파이썬) 자연수 뒤집어 배열로 만들기/ 리스트 컴프리헨션

engwoon 2024. 12. 17. 13:07

코드카타 17번 

문제

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴.

ex) n = 12345 --> 출력: [5,4,3,2,1]

 

풀이 순서

  • 숫자 n을 문자열로 변환하기
    • n = 12345   
    • str(n) ---> "12345"
  • 문자열 하나씩 출력하고, 정수형으로 바꾸기
    • ['1', '2', '3', '4', '5'] ---> [1, 2, 3, 4, 5]
  • 거꾸로 뒤집기
    • [5, 4, 3, 2, 1]

 

일반 풀이

n=12345
my_str = str(12345) 
my_list = []

for i in my_str:
    my_list.append(i)  #my_list에 i를 하나씩 출력
my_list
['1', '2', '3', '4', '5']

 

여기서 정수형으로 변환거꾸로 뒤집기

n=12345
my_str = str(12345)[::-1]  # [::-1] 문자열 거꾸로
my_list = []

for i in my_str:
    my_list.append(int(i))  #int(i)-> 문자열을 정수형으로
my_list
[5, 4, 3, 2, 1]

 

리스트 컴프리헨션 풀이

  • 리스트 컴프리헨션
    • 리스트를 생성하는 간결한 문법 
    • [] 안에 표현식과 반복문(for), 조건문(if)을 포함해 새로운 리스트 생성 가능
    • 반복문, 조건문을 한줄로 압축해 리스트를 생성한다.
    • 예시

range(2,7) --> 2부터 6까지 숫자 반복 --> 각 숫자를 그대로 리스트에 추가

def solution(n):
    result = [int(i) for i in str(n)][::-1] 
    return result
  • [int(i) for digit in str(n)]:
    • 문자열의 각 문자를 순회하며 정수(int(i))로 변환하여 리스트에 저장.
    • "12345" → [1, 2, 3, 4, 5]