문제 개요
하나의 숫자 n이 주어졌을 때, 1부터 n까지의 요소를 포함하는 크기 n짜리 리스트를 생성해야 합니다.
예를 들어 입력값이 n = 5라면, 출력 결과는 다음과 같습니다.
[1, 2, 3, 4, 5]
해결 방법
이 문제는 파이썬의 강력한 문법을 활용하면 매우 간단하게 해결할 수 있습니다.
- 리스트 컴프리헨션(list comprehension) 기법을 사용하면 반복문 없이도 한 줄의 코드로 리스트를 생성할 수 있습니다.
- range() 함수를 활용하여 1부터 n까지의 값을 차례대로 가져와 리스트에 담습니다. 이때 하한값은 1, 상한값은 n+1로 지정해야 합니다. range() 함수는 상한값 자체는 포함하지 않기 때문에, n까지의 숫자를 모두 생성하려면 반드시 n+1을 전달해야 합니다.
핵심 포인트
range(1, n+1)은 1부터 시작해서 n-1까지가 아닌 n까지 포함하는 시퀀스를 만들어 줍니다. 초보자들이 흔히 실수하는 부분이므로 꼭 기억해 두세요.
구현 예제
다음 코드를 통해 실제 동작을 확인해 보겠습니다.
def solve(n): return [i for i in range(1,n+1)] n = 5 print(solve(n))
입력
5
출력
[1, 2, 3, 4, 5]
마무리
리스트 컴프리헨션은 파이썬에서 가장 많이 사용되는 문법 중 하나입니다. 위와 같은 패턴을 응용하면 짝수만 담은 리스트, 제곱수 리스트 등 다양한 형태의 리스트를 손쉽게 만들 수 있으니 여러 가지로 변형해 보며 연습해 보시기 바랍니다.