본문 바로가기

programming/algorithm

[ algorithm ] 백준 단계별 문제 풀이 (반복문 1탄)

[ algorithm ] 백준 단계별 문제 풀이 (반복문 1탄)

 

안녕하세요. 심심한 코딩쟁이입니다.

 

오늘은 백준에서 반복문에 관련된 문제들의 풀이를 살펴보려 합니다.

 

파이썬3 를 사용해 문제 풀이를 진행하겠습니다.

 

문제마다 링크를 걸어두었으니 문제를 살펴보시고 문제를 푼 다음에 저와

 

풀이를 비교해 보시는 걸 추천드립니다.


차근차근 풀어봅시다.

 

Algorithm
알고리즘



백준 BAEKJOON 2739

 

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

 

 

2739번: 구구단

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

www.acmicpc.net

 

문제 해석

 

입력받은 숫자를 이용해 구구단을 출력하는 문제

 

풀이

 

n = int(input())
for i in range(1, 10):
    print("{} * {} = {}".format(n, i, n*i))

 

풀이 해석 및 팁

 

숫자를 입력값으로 받고 for  문과 문자열 포멧팅을 사용해 구구단을 출력

백준 BAEKJOON 10950

 

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

 

 

10950번: A+B - 3

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

www.acmicpc.net

 

문제 해석

 

테스트 케이스의 개수를 먼저 입력 받고 두 정수의 입력값의 합을 출력하는 문제

 

풀이

 

n = int(input())
for i in range(n):
    a, b = map(int, input().split())
    print(a+b)

 

풀이 해석 및 팁

 

먼저 테스트 케이스의 개수를 입력받고 for 반복문의 반복횟수를 지정합니다.
그리고 map 함수를 통해 공백으로 구분된 입력값을 두 변수에 대입합니다.
마지막으로 두 변수의 합 출력

백준 BAEKJOON 8393

 

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

 

 

8393번: 합

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

www.acmicpc.net


문제 해석

 

입력으로 주어진 수 n에 대해서 1부터 n까지의 합을 구하는 문제

 

풀이

 

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

 

풀이 해석 및 팁

 

문제에서 입력값으로 주어진 수를 for 문의 반복회수로 지정합니다.
이때 range의 범위를 1부터 n+1로 지정해주면 for 문을 돌면서 i에 1에서 n까지 대입되며 진행됩니다.
total 변수에 i를 계속 더하다가 반복문이 종료되면 값을 출력합니다.

백준 BAEKJOON 25304

 

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

 

 

25304번: 영수증

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

www.acmicpc.net

 

문제 해석

 

영수증에 계산된 총액이 정확한지를 검사하는 문제
총액, 물품의 종류 수, 물품의 금액, 물품의 개수를 입력받고 가격을 계산해서 총액과 비교해보는 문제입니다.

 

풀이

 

total = int(input())
n = int(input())

for i in range(n):
    a, b = map(int, input().split())
    total -= a*b
    
if total == 0:
    print('Yes')
else:
    print('No')

 

풀이 해석 및 팁

 

총액을 입력받고, 물품의 종류 수를 입력받습니다.
for 문을 이용해 물품의 종류 수 만큼 반복을 진행합니다.
물품의 가격과 개수를 동시에 입력받아 total 변수에서 해당 물품의 금액만큼 빼는 작업이 반복됩니다.
최종적으로 total의 값이 0이면 Yes를, 0이 아니면 No를 출력합니다.

백준 BAEKJOON 15552

 

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

n = int(sys.stdin.readline())

for i in range(n):
    a, b = map(int, sys.stdin.readline().rstrip().split())
    print(a+b)

 

풀이 해석 및 팁

 

sys를 임포트하고 sys.stdin.readline을 사용하면 빠르게 입력값을 받아올 수 있습니다.
단, 개행문자까지 받아들이기 때문에 rstrip()을 사용해 개행문자를 제거하는 과정이 필요하겠습니다.

백준 BAEKJOON 11021

 

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

 

 

11021번: A+B - 7

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

www.acmicpc.net

 

문제 해석

 

각 테스트 케이스마다 앞에 케이스 번호를 붙여주고 두 정수의 합을 출력하는 문제

 

풀이

 

import sys
n = int(sys.stdin.readline())

for i in range(1,n+1):
    a, b = map(int, sys.stdin.readline().rstrip().split())
    print(f"Case #{i}: {a+b}")

 

풀이 해석 및 팁

 

sys를 임포트해서 stdin.readline을 사용해 입력값들을 받습니다.
문자열 포멧팅을 사용해 출력하는 문자열을 쉽게 처리할 수 있습니다.

여기까지 백준 단계별 문제 반복문에 대한 문제 풀이였습니다.

 

저번시간에는 조건문 관련 문제를 살펴보았습니다.

 

[ algorithm ] 백준 단계별 문제 풀이 (조건문)

 

아직 반복문에 대한 문제가 남아있으니 반복문 2탄 포스팅에서 살펴보도록하시죠.

 

어려운 점이나 궁금하신것이 있다면 댓글로 남겨주시기바랍니다.

 

감사합니다.

반응형