[BOJ-Python] 단계별 문제 for문 3단계
카테고리: BOJ-Python
💡
백준(Baekjoon Online Judge)은 온라인으로 프로그래밍 문제를 풀고 채점받을 수 있는 웹사이트입니다.
백준 ‘단계별로 풀어보기’ 문제풀이가 아래에 수록되었습니다.
3단계 for문
단계 | 문제 번호 | 제목 | 정답률 |
---|---|---|---|
1 | 2739 | 구구단 | 51.384% |
2 | 10950 | A+B -3 | 58.280% |
3 | 8393 | 합 | 65.849% |
4 | 15552 | 빠른 A+B | 45.859% |
5 | 2741 | N 찍기 | 54.887% |
6 | 2742 | 기찍 N | 68.262% |
7 | 11021 | A+B -7 | 50.413% |
8 | 11022 | A+B -8 | 69.679% |
9 | 2438 | 별 찍기 -1 | 62.553% |
10 | 2439 | 별 찍기 -2 | 56.706% |
11 | 10871 | X보다 작은 수 | 54.861% |
Q1. 구구단(2739)
❓ 문제
N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.
✒️ 입력
첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 9보다 작거나 같다.
💻 출력
출력형식과 같게 N1부터 N9까지 출력한다.
💯 답(정답률: 51.384%)
n=int(input())
for i in range(1,10):
print(n,'*',i,'=',n*i)
Q2. A+B -3(10950)
❓ 문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
✒️ 입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
💻 출력
각 테스트 케이스마다 A+B를 출력한다.
💯 답(정답률: 58.283%)
a=int(input())
for i in range(a):
b,c=map(int,input().split())
print(b+c)
Q3. 합(8393)
❓ 문제
n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
✒️ 입력
첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.
💻 출력
1부터 n까지 합을 출력한다.
💯 답(정답률: 65.849%)
n=int(input())
result=0
for i in range(1,n+1):
result+=i
print(result)
Q4. 빠른 A+B(15552)
❓ 문제
본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.
Python을 사용하고 있다면, input
대신 sys.stdin.readline
을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()
을 추가로 해 주는 것이 좋다.
또한 입력과 출력 스트림은 별개이므로, 테스트케이스를 전부 입력받아서 저장한 뒤 전부 출력할 필요는 없다. 테스트케이스를 하나 받은 뒤 하나 출력해도 된다.
✒️ 입력
첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
💻 출력
각 테스트케이스마다 A+B를 한 줄에 하나씩 순서대로 출력한다.
💯 답(정답률: 45.865%)
import sys
t=int(input())
for i in range(t):
a,b=map(int,sys.stdin.readline().split())
print(a+b)
Q5. N찍기(2741)
❓ 문제
자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
✒️ 입력
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
💻 출력
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
💯 답(정답률: 54.886%)
n=int(input())
for i in range(1,n+1):
print(i)
Q6. 기찍N(2742)
❓ 문제
자연수 N이 주어졌을 때, N부터 1까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.
✒️ 입력
첫째 줄에 100,000보다 작거나 같은 자연수 N이 주어진다.
💻 출력
첫째 줄부터 N번째 줄 까지 차례대로 출력한다.
💯 답(정답률: 68.262%)
n=int(input())
for i in range(n):
print(n-i)
Q7. A+B -7(11021)
❓ 문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
✒️ 입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
💻 출력
각 테스트 케이스마다 “Case #x: “를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.
💯 답(정답률: 50.414%)
import sys
t=int(input())
for i in range(1,t+1):
a,b=map(int,sys.stdin.readline().split())
print("Case #{}: {}".format(i,a+b))
Q8. A+B -8(11022)
❓ 문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
✒️ 입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
💻 출력
각 테스트 케이스마다 “Case #x: A + B = C” 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.
💯 답(정답률: 69.679%)
import sys
t=int(input())
for i in range(1,t+1):
a,b=map(int,sys.stdin.readline().split())
print("Case #{}: {} + {} = {}".format(i,a,b,a+b))
Q9. 별 찍기 -1(2438)
❓ 문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
✒️ 입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
💻 출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
💯 답(정답률: 62.554%)
n=int(input())
for i in range(1,n+1):
print("*"*i)
Q10. 별 찍기 -2(2439)
❓ 문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
✒️ 입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
💻 출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
💯 답(정답률: 56.706%)
n=int(input())
for i in range(1,n+1):
print(" "*(n-i)+"*"*i) #공백을 곱하면 됨!
Q11. X보다 작은 수(10871)
❓ 문제
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
✒️ 입력
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
💻 출력
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
💯 답(정답률: 54.861%)
n,x=map(int,input().split())
num=list(map(int,input().split()))
for i in range(n):
if num[i]<x:
print(num[i], end=" ") #end=" "은 공백을 남기고 그대로 줄을 이어 씀을 의미함!