파이썬에서의 for문 형식은 아래와 같다.
for item in iterable:
... 반복할 구문 ...
for문에서 빠질 수 없는 range를 소개하고 11문제 중에서 인상이 깊었던 6문제를 소개한다.
range(start, stop, step)
# start와 step은 생략 가능하다.
# i가 stop이 되면 for문을 빠져나오는 느낌
for i in range(5): # for(i=0; i<5; i++)
print(i)
# 출력
0
1
2
3
4
역순으로 출력
for i in range(5,0,-1)
print(i)
# 출력
5
4
3
2
1
15552번 빠른 A+B (링크)
사실 이 문제를 소개하고 싶었던 이유는 저기 빨간색 네모친 것 때문이다. (그냥 내가 이 문제 때문에 저걸 인식을 했기 때문 ㅎ..)
11022번 A+B - 8 (링크)
import sys
n = int(sys.stdin.readline())
for i in range(1, n+1):
a,b = map(int, sys.stdin.readline().split())
print(f"Case #{i}: {a} + {b} = {a+b}")
파이썬 3.6이상만 지원하는 포맷스트링이다.
2438번 별 찍기 - 1 (링크)
기본적인 별찍기 문제.
import sys
n = int(sys.stdin.readline())
for i in range(1,n+1): # for(i = 1; i < n+1; i++)
for k in range(i): # for(k = 1; k < i+1; k++)
print('*', end='')
print('')
range때문에 괜히 조금 헷갈렸다.
겉의 for는 라인을 의미하고 속의 for는 찍는 별 개수를 의미한다.
2439번 별 찍기 - 2 (링크)
기본적인 별찍기 문제2.
import sys
n = int(sys.stdin.readline())
for i in range(1, n+1):
for j in range(n-i, 0, -1):
print(' ', end='')
for k in range(i):
print('*', end='')
print('')
별을 찍기 전에 공백을 먼저 출력 해줘야한다. 공백은 4,3,2,1순(거꾸로)으로 찍어야하기 때문에 세번째 인자(step)에 -1을 주었다.
10871번 X보다 작은 수 (링크)
import sys
n,x = map(int, sys.stdin.readline().split())
data = list(map(int, sys.stdin.readline().split()))
for d in data:
if d < x:
print(d, end=' ')
range 함수 대신에 iterable 객체인 list를 순회할 수 있다.
그리고 이때까지 문제에서는 데이터 두개만 공백 기준으로 잘라서 변수 두개에 넣어줬는데, 이 문제의 경우는 공백 기준으로 몇개의 변수에 데이터를 넣어줘야하는지 미리 알 수가 없다.
그래서 list를 이용해서 저장해주었다.
'Coding > Baekjoon' 카테고리의 다른 글
[백준] 단계별로 풀어보기 - 6. 함수 (python3) (4673) (0) | 2022.01.11 |
---|---|
[백준] 단계별로 풀어보기 - 5. 1차원 배열 (python3) (8958) (0) | 2022.01.11 |
[백준] 단계별로 풀어보기 - 4. while문 (python3) (10951, 1110) (0) | 2022.01.06 |
[백준] 단계별로 풀어보기 - 2. if문 (python3) (2884) (0) | 2022.01.05 |
[백준] 단계별로 풀어보기 - 1. 입출력과 사칙연산 (python3) (0) | 2022.01.04 |