본문 바로가기
DEV/백준 알고리즘

백준 알고리즘 25304번(파이썬)

by 올커 2022. 9. 21.

 

백준 25304번_파이썬 알고리즘

Q. 백준 25304. 영수증

아래 영수증에 적힌 정보를 확인하는 프로그램을 작성한다.
 - 구매한 각 물건의 가겨과 갯수, 구매한 물건들의 총 금액
(1) 입력 : 첫째 줄는 영수증에 적힌 총 금액 X가 주어지고, 둘째 줄에는 구매한 물건의 종류의 수 N을 입력받는다.
이후 종류에 따라 N개의 줄에는 각 물건의 가격 a와 갯수 b가 공백을 사이에 두고 입력된다.
(2) 출력 : 계산된 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes, 일치하지 않으면 No 출력


A. 풀이

 - 영수증에 적인 내용을 입력받고, 이를 검사하는 프로그램을 짠다.

# Q 백준 25304. 영수증
sum_input = int(input())
cnt= int(input())
sum = 0

for _ in range(cnt):
    a,b = map(int,input().split())
    sum += a * b
    
if sum == sum_input:
    print("Yes")
else:
    print("No")

1) 변수 선언부

 - 사용자로 부터 영수증 계산서 총액을 입력받는다(input). 입력받은 수는 정수로 변환(int)해 사용한다.

 - 구입한 물품의 갯수를 받아야 하므로 위와 동일하게 input int를 사용하여 cnt라는 변수를 정의한다.

 - 나중에 최종 총합을 계산하기 위해 sum이라는 함수를 0의 값으로 생성한다.

 

2) 반복문(for문)

 - 물품의 갯수 만큼 반복하기 위해서 for문의 range는 'range(cnt)'로 입력한다.

 - 각 물품은 가격(a)과 갯수(b)를 입력받고, 숫자 자료형으로 사용하기 위해 'map()'함수를 사용한다.

   공백을 두고 2개의 값으로 입력받아 a, b에 할당하기 위해서 'a, b = map(int, input().split())'과 같이 넣었다.

 - 각 입력받은 값은 계산하여 이전에 정의했던 sum이라는 변수에 더하여 할당한다.

   (더하는 이유는 cnt의 인덱스를 돌면서 각 값들을 합산해야 하기 때문)

 

3) 조건문(if문)

 - 조건문을 통해 반복문에서 계산된 총합(sum)과, 초기에 입력받은 합(sum_input)을 비교한다.

 - 출력은 print문을 사용하고, 같다면 yes출력, 다르다면 else:문에서 No를 출력하도록 한다.


R. 리뷰

 - 입력받고 각 case마다 명령을 실행하고, 마지막으로 검사하는 프로그램이다. 백준에서는 이러한 유형의 알고리즘 문제가 자주 보인다.

 - 입력 받은 값을 사용할 수 있는 형태로 변환해주는 것, 그리고 제대로 검사하여 출력해주는 것이 키포인트이다.

 

 

반응형

댓글