백준(python) 25304번 영수증 풀이

zhixian_dev.log·2022년 9월 20일
0

백준

목록 보기
6/12

👁‍🗨백준 25304번 영수증

백준 25304번 링크

💬문제

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

영수증에 적힌,

  • 구매한 각 물건의 가격과 개수
  • 구매한 물건들의 총 금액
    을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.

입력

첫째 줄에는 영수증에 적힌 총 금액 XX가 주어진다.
둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 NN이 주어진다.
이후 NN개의 줄에는 각 물건의 가격 aa와 개수 bb가 공백을 사이에 두고 주어진다.

출력

구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력한다. 일치하지 않는다면 No를 출력한다.

예제 입력1

260000
4
20000 5
30000 2
10000 6
5000 8

예제 출력1

yes

예제 입력2

250000
4
20000 5
30000 2
10000 6
5000 8

예제 출력2

no

❓풀이 방법❓

아직도 백준에서 틀렸습니다 가 나오지만,,;;

sum과 num을 입력받은 후, num만큼 for문을 돌려준다.
그 for문 안에 물건값, 개수를 입력받고, 그 둘을 곱한 c를 sum에서 빼주는 방식을 사용했었는데 for문 안에서 처음 sum이 계속 들어오는건가..? 싶어서 result = 0과 같이 값을 초기화시켜준 후 더해주는 풀이로 변경을 해보았다.

변경 후엔 코랩에선 yes, no가 잘 나오는데,,, 백준에선 틀렸다고한다😅😅
어디가 틀린건지,,, 확인을 계속 해봐야할듯,,,

백준 25304번 풀이 1

sum = int(input())
num = int(input())
for i in range(sum):
  a, b = map(int, input().split())
  c = a * b
  sum -= c
  print(sum)
if sum == 0:
  print("yes")
else:
  print("no")

백준 25304번 풀이2

sum= int(input())
num = int(input())
result = 0
for i in range(num):
  a, b = map(int, input().split())
  result += a*b
if sum == result:
	print("yes")
else:
	print("no")
profile
💻 화나면 물어요

0개의 댓글