📪 for문
for문 단계
1부터 N까지의 합을 구하는 문제. 물론 반복문 없이 풀 수도 있습니다.
www.acmicpc.net
📌 문제1. 구구단 [2739번]
n = int(input())
for i in range(1, 10):
print(str(n) + " * " + str(i) + " = " + str(n * i), end='\n')
- 다른 type을 나열하고 싶은 경우 : ','로 나열. (Ex. print(a,"*",i,"=",a*i) )
- 모두 문자열인 경우 : '+'로 문자열 합치기. (Ex. print("a"+"*"+"i"..) )
📌 문제2. A+B-3 [10950번]
n = int(input())
for i in range(n):
a, b = map(int, input().split())
print(a+b, end='\n')
※ 다른 풀이 보기
더보기
import sys
T = int(input()) #Test case
for i in range(T):
a,b = map(int, sys.stdin.readline().split())
print(a+b)
- input 메소드보다 sys.stdin.readline() 메소드가 속도 빠름.
따라서 문자열을 여러번 입력받을 경우,input X. sys.stdin.readline() O - sys.stdin.readline()은 문자열형이며 '개행문자' 필수 포함. 따라서 '.strip()'을 해줘야 '\n'이 제거됨.
- sys.stdin.readilne()을 정수형으로 사용하고 싶다면 int()화 해주어야 함.
📌 문제3. 합 [8393번]
✔️ 합 = 'n*(n+1)/2'
n = int(input())
print(n*(n+1)//2)
※ 다른 풀이 보기
더보기
print (sum(range(int(input())+1)))
✔ 파이썬에 sum(iterable) 有
📌 문제4. 빠른 A+B [15552번]
✔️ Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다.
단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 .rstrip()을 추가로 해 주는 것이 좋다.
import sys
t = int(sys.stdin.readline()) # 최대 백만
for i in range(t):
print(eval('+'.join(sys.stdin.readline().rstrip().split())))
→ 시간 오버 됨. (eval과 join때문인듯)
import sys
t = int(input()) # 최대 백만
for i in range(t):
a, b = map(int, sys.stdin.readline().split())
print(a+b)
📌 문제5. N 찍기 [2741번]
n = int(input())
for i in range(n):
print(i+1)
※ 다른 풀이 보기
더보기
n = range(1, int(input()) + 1)
print('\n'.join(map(str, n)))
→ print문의 경우, 횟수가 작을수록 빠르기에 줄이는 것이 좋다.
📌 문제6. 기찍 N [2741번]
[풀이 1]
n = int(input())
for i in range(n,0,-1):
print(i)
[풀이 2]
n = int(input())
for i in reversed(range(1,n+1)):
print(i)
※ 다른 풀이 보기
더보기
n=int(input())
print("\n".join(map(str, range(n, 0, -1))))
→ print문의 경우, 횟수가 작을수록 빠르기에 줄이는 것이 좋다.
📌 문제7. A+B-7 [11021번]
import sys
n = int(sys.stdin.readline())
for i in range(n):
a, b = map(int, sys.stdin.readline().split())
print(f"Case #{i + 1}: {a + b}")
✔ 문자와 변수 한번에 출력하기 : f" { } "
※ 다른 풀이 보기
더보기
import sys
num=int(input())
for i in range(num):
a,b=map(int,sys.stdin.readline().split())
print("Case #%d:"%(i+1),a+b)
📌 문제8. A+B-8 [11022번]
import sys
n = int(sys.stdin.readline())
for i in range(n):
a, b = map(int, sys.stdin.readline().split())
print(f"Case #{i + 1}: {a} + {b} = {a + b}")
📌 문제9. 별 찍기(1) [2438번]
import sys
n = int(sys.stdin.readline())
for i in range(n):
print("*"*(i+1), end="\n")
📌 문제10. 별 찍기(2) [2439번]
n = int(input())
for i in range(1, n+1):
print(" " * (n-i) + "*" * i)
📌 문제11. X보다 작은 수 [10871번]
n, x = map(int, input().split())
list_A = list(map(int, input().split()))
for element in list_A:
if element < x: print(element, end=" ")
※ 다른 풀이 보기
더보기
import sys
in_put = sys.stdin.readline
N, X = map(int, in_put().split())
out = [str(n) for n in map(int, in_put().split()) if n < X]
print (' '.join(out))
🔔 중요개념정리
- print 문에서 합치기
→ ','(다른 type들)
→ '+'(str만) - range(시작O, 끝X, step)
- 입력문
→ [일반적] input
→ [입력多] sys.stdin.readline() - print문
→ 횟수가 적을 수록 좋음.
→ .join등으로 최대한 하나로 표현. - range와 내림차순
→ step=음수
→ reversed 사용 - 문자와 변수를 한번에 출력하는 법 ⭐
→ f" { } "
→ " %d"%(숫자)
728x90
'Algorithm > BOJ' 카테고리의 다른 글
| [기초] 06. 함수 (0) | 2022.02.21 |
|---|---|
| [기초] 05. 1차원 배열 (0) | 2022.02.07 |
| [기초] 04. while문 (0) | 2022.02.07 |
| [기초] 02. If문 (0) | 2022.02.06 |
| [기초] 01. 입출력과 사칙연산 (0) | 2022.02.04 |