영수증(25304번)

PearLine_Zero·2024년 3월 11일

하루에 1커밋 CodingTest

목록 보기
24/110
post-thumbnail
  • 티어 : Bronze 4
  • 정답여부 : 정답
  • 알고리즘 유형 : 구현, 수학, 사칙연산
  • 시간 제한 : 1초

💡문제

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

영수증에 적힌,

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

💡입력

첫째 줄에는 영수증에 적힌 총 금액
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

💡문제요약

구매한 물건과 가격과 개수로 계산한 총 금액이 영수증 적힌 총 금액과 일치하면 Yes 일치하지 않으면 No

💡알고리즘 설계

  1. X에 가격 합쳐진 금액을 N에 구매한 물건의 종류
  2. sum에는 영수증의 총 금액을 넣을 변수
  3. N(구매한 물건의 종류)만큼 for문을 돌리면서 a,b에 물건의 금액 그리고 갯수를 넣어줌
  4. sum에다가 영수증 총 금액을 계산함
  5. 만약 X와 sum이 같으면 Yes 다르면 No 출력

💡작성코드

  • python
X = int(input())
N = int(input())
sum = 0
for i in range(N):
    a, b = map(int, input().split())
    sum += (a * b)
if X == sum:
    print('Yes')
else:
    print('No')

💡틀린 이유 or 수정할 부분

다른 사람의 코드를보면 N과 i의 변수가 굳이 필요없다는것을 봄..

💡틀린 부분 수정 or 다른풀이

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

💡느낀점 or 기억할 정보

변수가 필요한지 한번 더 생각해보자!!

profile
https://baesaa0304.tistory.com 블로그 이사합니다~

0개의 댓글