데이터 분석/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)을 포함해 새로운 리스트 생성 가능
- 반복문, 조건문을 한줄로 압축해 리스트를 생성한다.
- 예시
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]