티스토리 뷰
[Python] 백준 알고리즘 온라인 저지 2741번 : N 찍기
Python3 코드
1) for문 코드
n = int(input())
for i in range(1, n+1): # 1부터 n까지
print(i)
2) comprehension 코드
[print(i) for i in range(1, int(input())+1)]
Python3 코드 풀이
1. 코드의 전체적인 문제풀이 요약
이번 문제는 랜덤으로 어떤 수를 입력받으면 1부터 해당 수까지 출력하는 문제이다. 수를 출력할 때는 한 줄에 하나씩을 출력하면 된다. 문제를 풀기 위해선 임의의 수 n까지 print 함수를 반복적으로 사용해야 하기 때문에 반복문을 사용해서 간단히 풀 수 있다. 그리고 for문을 한 줄로 작성할 수 있는 comprehension 표현식으로도 작성해보았다. 시간은 comprehension 표현식으로 작성할 때 조금 더 짧게 걸렸다.
2. 자연수 n 입력받기
n = int(input())
입력받는 함수는 input 함수를 사용했다. 자연수로 입력되더라도 문자열로 입력받는 함수의 특성 때문에 입력받은 수를 int 함수로 변환하였다. 입력받은 수는 변수 n에 선언했다.
3. for문 코드
for i in range(1, n+1): # 1부터 n까지
print(i)
숫자의 범위는 range 함수를 이용해서 생성했다. range 함수로 시작 값과 종료 값을 지정하려면 range(start, stop) 형태로 사용하면 된다. 이번 문제는 1부터 처음에 입력받은 수 n까지를 순서대로 출력하는 문제이므로 숫자 범위는 n까지 생성해야 한다. 그래서 stop 숫자는 숫자 범위에 포함하지 않는 range 함수의 성질을 감안해서 코드는 range(1, n+1)로 작성해서 숫자 범위를 생성했다.
print 함수는 for문안에서 들여 쓰기 해서 작성했다. 만일 for문의 반복이 모두 끝난 이후에 어떤 값을 출력해야 한다면 for문과 같은 줄에 print함수를 작성해야 하고 이번 문제 같은 경우는 숫자로 이루어진 iterable 자료형의 요소를 하나씩 꺼내서 출력해야 하기 때문에 for문 안에 들여 쓰기 하면 된다.
4. comprehension 표현식으로 작성하기
[print(i) for i in range(1, int(input())+1)]
comprehension 표현식을 이용하면 여러 줄에 걸쳐진 반복문을 한 줄로 작성할 수 있다. comprehension 표현식을 작성하는 방법은 아래와 같다.
[ 출력 표현식 for iterable자료 요소 in iterable자료형 ]
for문 안에서 들여쓰기 하는 문장을 comprehension 표현식 맨 앞에 작성해주면 된다. 그리고 그 뒤는 for문 맨 윗줄을 작성하는 것과 동일한 방법으로 코드를 작성하면 된다.
'파이썬 스킬업 > 백준 알고리즘 연습' 카테고리의 다른 글
백준 2742번 [파이썬] 기찍 N : Python range함수 역순 출력 (0) | 2020.07.03 |
---|---|
백준 15552번 [파이썬] 빠른 A+B : sys.stdin.readline 함수 (0) | 2020.07.03 |
백준 8393번 [파이썬 알고리즘] 합 : sum함수로 한줄 작성 (0) | 2020.07.03 |