1. 문제
- 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
2. 풀이
- 100,000 이하의 자연수를 입력 받도록 한다.
- 1부터 입력 받은 숫자까지 출력을 반복한다.
N = int(input())
for n in range(1, N+1):
print(n)
- N+1 이유
range함수에서 파라미터가 2개인 경우,
앞의 파라미터는 시작값이고,
뒤의 파라미터는 종료값이다.
이때 종료값의 직전 숫자까지 반복하므로 '+ 1'을 해줘야 종료값을 출력할 수 있게 된다.
3. 남의 버전
1) 당연하게도 코랩 등등 에선 오류남.
import sys
N = int(sys.stdin.readline())
for n in range(1, N+1):
print(n)
2) 숏코딩
print(*range(1,int(input())+1))
- *range()
파이썬 만의 특이한 동작으로 데이터 패킹과 언패킹 개념을 활용한 코드였다.
*(애스터리스트, 별표)가 iterable 형태의 데이터를 만나면,
언패킹한 후 인자를 넘겨주게 된다.
여기서 iterable 형태의 데이터란,
튜플, 리스트, 딕셔너리 등을 의미한다.
# 참고1
print(*range(1, 5))
# 참고2
nums = [1, 2, 3]
chars = ["a", "b", "c"]
print(*nums, *chars)
- 파이썬 패킹, 언패킹 관련 블로그 참고
[파이썬 중급] unpacking에 대해서 잘 알고 계시나요?(*, ** 사용법)
안녕하세요 혹시 여러분은 UNPACKING(언패킹)에 대해서 잘 이해하고 쓰시고 계신가요? 아래 문제를 풀어보시겠어요? l1 = [1,2,3] l2 = ['python'] l3 = [*l1,*l2] a, *b, (c, *d) = l3 print(a) print(b) print(..
yeko90.tistory.com
- 해당 코드 관련 질문과 답변 게시글 참고
글 읽기 - *의 의미 ㅠ
댓글을 작성하려면 로그인해야 합니다.
www.acmicpc.net
4. 출력 확인
1) 내가 푼 코드의 출력
2) 숏코딩 출력
3) *(애스터리스트)예제 코드들
'백준' 카테고리의 다른 글
백준 10871 X보다 작은 수 파이썬 (0) | 2022.11.28 |
---|---|
백준 2438 별 찍기 파이썬 (0) | 2022.11.18 |
백준 15552 빠른 A + B 파이썬 (0) | 2022.02.17 |
백준 8393 합 파이썬 (0) | 2022.02.16 |
백준 10950 a + b (3번째) 파이썬 (0) | 2022.02.15 |