Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

xcc1

백준 단계별 풀이 3단계(파이썬) 본문

백준

백준 단계별 풀이 3단계(파이썬)

xcc1 2021. 8. 26. 13:42

백준 단계별 풀이 3단계: for문

 

  • 2739번 정답

#입력해주는 값을 받고.
number = int(input())

#for문으로 i라는 숫자를 1부터 9까지. format으로 print 해준다....!
for i in range(1,10):
	print( "{} * {} = {}". format(number , i ,number * i))

 

 

 

  • 10950번 정답

#t라는 변수에 입력된 값을 받는다. 
#처음 주어지는 값은 시행의 횟수를 말한다.
t = int(input())

#for 문으로 받는다. 두번째 주어지는 애들은 나란히 주어지니 전부터
#사용했던 map으로...!!! 
for i in range(t):
	A, B = map(int, input().split())
	print( A + B )

while 문이랑 자꾸 헷갈려서 마지막에 i += 1을 자꾸만 쓴다.

for 문은 in 뒤에 오는 값의 갯수만큼 0부터 시작되니 안써도 된다!! 

 

 

 

  • 8393번 정답 

#입력된 값을 받는다. total이라는 변수를 저장할 곳으로 사용.
number = int(input())
total = 0

#for문이 작동될 때마다 total이 갱신된다.
for i in range(number + 1) : 
	total = total + i
    
#결과에 대한 값을 원함으로 print를 for문 밖으로 빼야한다.
print(total)

만약 print를 for 문 안에 넣어두면 각 시행마다의 결과가 나온다. 

 

                   콘솔

total = 0 + 0 = 0

total = 0 + 1 = 1

total = 1 + 2 = 3

total = 3 + 3 = 6

 

이런 식으로 말이다.

 

 

 

  • 15552번 정답 

 

이 문제는 input 대신 sys.stdin.readline 를 사용하는 문제이다.

반복문 안에서 여러 줄을 입력 받다보면 시간이 초과하기 때문에 사용한다고 한다.

 

아래의 블로그에서 자세한 내용을 볼 수 있다!

https://velog.io/@yeseolee/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5-%EC%A0%95%EB%A6%ACsys.stdin.readline

 

 

#sys.stdin.readline()을 사용하기 위해서 sys 모듈을 가져온다.
import sys

#문제에서 T로 하라고 했으니...
#이부분은 반복문 부분이 아니기 때문에 그냥 input으로 받아도 괜찮다.
T = int(input())

#별 다를 것 없다!
for i in range(T):
    A, B = map(int, sys.stdin.readline().split())
    print( A + B )

시간 제한이 있는 첫 문제...

 

 

 

  • 2741번 정답

#변수로 횟수를 받는다.
T = int(input())

#range(a , b)는 a에서 b - 1 까지이니,
for i in range(1 , T+1):
	print(i)

 

 

 

  • 2742번 정답

T = int(input())

# T값에다가 0부터 4까지 차례로 빼면 된다!
for i in range(T):
	print(T - i)

 

 

 

  • 11021번 정답

#반복문으로 받을 것이니 배운 sys.stdin.readline().split())을 사용하자!
import sys
T = int(input())

for i in range(T):
	A , B = map(int, sys.stdin.readline().split())
	print("Case #{}: {}".format(i+1, A + B))

 

 

 

  • 11022번 정답

아주 유사한 문제!

import sys
T = int(input())

#바꿀 것이 거의 없다!
for i in range(T):
	A , B = map(int, sys.stdin.readline().split())
	print("Case #{}: {} + {} = {}".format(i+1, A , B, A + B))

 

 

 

  • 2438번 정답

그림 그려보는 건 처음!

T =  int(input())

#파이썬만 이렇게 쉽게 문자열에 곱하기를 사용할 수 있는걸까?
for i in range(1, T+1):
	print("*" * i)

 

C/C++ 풀이를 보니 파이썬이 얼마나 간단한 편인지 알게 된다...... 

 

https://rightbellboy.tistory.com/63

 

[백준/BOJ] 2438번 별찍기 - 1 (C/C++)

백준 온라인 저지(BOJ) 2438번 별찍기 - 1 https://www.acmicpc.net/problem/2438 * 사용언어 : C언어, C++ 1. 문제 첫 번째 줄에 1개, 두 번째 줄에 2개, ... n번째 줄에 n개의 별을 출력 2. 풀이 보통 처음 for..

rightbellboy.tistory.com

 

 

 

  • 2439번 정답

T =  int(input())

#앞의 것들은 빈칸일테니...
for i in range(1, T+1):
	print(" "*(T - i) + "*" * i)

 

 

 

  • 10871번 정답

# 수열 A의 길이를 보아하니, 전처럼 변수로 받을 순 없겠죠?
#그래서 리스트로 저장!
N,  X = map(int, input().split())
A = list(map(int, input().split()))

#end는 처음 배웠는데....
for i in range(N):
	if A[i] < X:
		print(A[i], end=" ")

 

처음 짠 코드

N,  X = map(int, input().split())

for i in range(N):
	A = list(map(int, input().split()))
	if A[i] < X:
			#어떡하지??

당연히 작동이 안되었다!

for 문 안에서 반복이 안되는 것이 문제였는데, 나름 생각해보자면 반복문 한번 시행하고 다시 한 번 하려니 이미 A에 리스트가 있기 때문에 stop된 것이 아닐지?... 

 

 

 

이렇게 for문 단계를 모두 풀어보았다. 소요된 시간은 1시간 40분정도! 

새롭게 배운 것은! sys 모듈이랑 print( , end = " ") 이다!