본문 바로가기
Algorithm/Step by Step

[단계별로 풀어보기] 반복문

by lifeisgenie 2023. 3. 5.

https://www.acmicpc.net/problem/2739

 

2739번: 구구단

N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다.

www.acmicpc.net

N = int(input())

for i in range(1, 10):
    print(N, "*", i, "=", N*i)

 

https://www.acmicpc.net/problem/10950

 

10950번: A+B - 3

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

T = int(input())
for i in range(T):
    A, B = map(int, input().split())
    print(A+B)

 

https://www.acmicpc.net/problem/8393

 

8393번: 합

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

www.acmicpc.net

n = int(input())
sum = 0
for i in range(1, n+1):
    sum += i
    
print(sum)

 

https://www.acmicpc.net/problem/25304

 

25304번: 영수증

준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것

www.acmicpc.net

X = int(input())
N = int(input())
sum = 0

for i in range(N):
    a, b = map(int, input().split())
    sum += (a*b) #a, b를 곱한 값을 반복문 끝날 때 까지 sum 변수에 초기화
    
if sum == X:
    print("Yes")
else: 
    print("No")

 

https://www.acmicpc.net/problem/25314

 

25314번: 코딩은 체육과목 입니다

오늘은 혜아의 면접 날이다. 면접 준비를 열심히 해서 앞선 질문들을 잘 대답한 혜아는 이제 마지막으로 칠판에 직접 코딩하는 문제를 받았다. 혜아가 받은 문제는 두 수를 더하는 문제였다. C++

www.acmicpc.net

N = int(input())

for i in range(N//4):
    print("long", end=" ")
print("int")

 

https://www.acmicpc.net/problem/15552

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

import sys

T = int(input())
for _ in range(T):
    A, B = map(int, sys.stdin.readline().split())
    print(A+B)

본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다. 

 

https://www.acmicpc.net/problem/11021

 

11021번: A+B - 7

각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다.

www.acmicpc.net

이 문제는 출력 부분을 4가지 방식으로 나타낼 수 있다.

1. 입력받은 str() 함수를 이용해서 숫자를 문자열로 변환하여 출력하는 것이다. 

t = int(input())

for x in range(1, t+1):
    a, b = map(int, input().split())
    print("Case #"+str(x)+":", a+b)

2. % 포맷팅

%를 사용해서 원하는 형식으로 포맷팅하는 방식이다. 이 방식에는 단점이 존재한다. 바로 명시한 자료형마다 입력값으로 사용할 수 있는 자료형이 정해져있다는 점이다. 따라서 자료형별로 어떤 문자를 사용해야하는지 숙지해야한다.

t = int(input())

for x in range(1, t+1):
    a, b = map(int, input().split())
    print("Case #%d: %d" %(x, a+b))

%으로 문자열 포맷팅

3. format 함수

문자열 포맷팅이란 문자열을 이쁘게 만드는 방법을 말한다. 좀 더 풀어서 설명하자면 문자열 중간 중간에 특정 변수의 값을 넣어주기 위해서 사용하는 것이다.

'{인덱스0}, {인덱스2}.format(값0, 값1)

t = int(input())

for x in range(1, t+1):
    a, b = map(int, input().split())
    print('Case #{0}: {1}'.format(x, a+b))

 

4. f-string 문법

문자열 앞에 접두사 f를 붙이고, 중괄호 {} 안에 변수를 넣는 방식이다. 이 방식의 가장 큰 장점은 자료형의 변환 없이 문자열과 정수를 함께 넣을 수 있다는 점이라고 생각한다.

t = int(input())

for x in range(1, t+1):
    a, b = map(int, input().split())
    print(f'Case #{x}: {a+b}')

 

https://www.acmicpc.net/problem/11022

 

11022번: A+B - 8

각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.

www.acmicpc.net

t = int(input())

for x in range(1, t+1):
    a, b = map(int, input().split())
    print("Case #%d: %d + %d = %d" %(x, a, b, a+b))

 

https://www.acmicpc.net/problem/2438

 

2438번: 별 찍기 - 1

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

www.acmicpc.net

n = int(input())

for i in range(1, n+1):
    print("*"*i)

 

https://www.acmicpc.net/problem/2439

 

2439번: 별 찍기 - 2

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

www.acmicpc.net

n = int(input())

for i in range(1, n+1):
    print(" "*(n-i)+"*"*i)

 

https://www.acmicpc.net/problem/10952

 

10952번: A+B - 5

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

while True:
    a, b = map(int, input().split())
    if a==0 and b==0:
        break #while문을 멈춘다.
    else:
        print(a+b)

 

https://www.acmicpc.net/problem/10951

 

10951번: A+B - 4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

while True:
    try:
        A, B= map(int,input().split())
        print(A+B)
    except: #입력이 들어오지 않을 때
        break #while문 종료

예외(exception)이란 코드를 실행하는 중에 발생한 에러를 말한다. 예외 처리를 하려면 아래와 같이 try에 실행할 코드를 넣고 except에 예외가 발생했을 때 처리하는 코드를 넣는다. 위 코드의 경우에는 입력이 얼마나 들어올지 모르는 상황에서 끝나는 시점의 조건도 주어지지 않기 때문에 예외처리를 해야 된다.

try:
	실행할 코드
except:
	예외가 발생했을 때 처리하는 코드