새소식

⌨️ Algorithms/백준

[Python] 백준 25304번_영수증

2023. 5. 15. 23:21

  • -

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

 

25304번: 영수증

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

www.acmicpc.net

 

  • 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 함
  • 영수증에 적힌,
    • 구매한 각 물건의 가격과 개수
    • 구매한 물건들의 총 금액
  • 을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보기
  • 입력
    • 첫째 줄에는 영수증에 적힌 총 금액 X가 주어짐
    • 둘째 줄에는 영수증에 적힌 구매한 물건의 종류의 수 N이 주어짐
    • 이후 N개의 줄에는 각 물건의 가격 a와 개수 b가 공백을 사이에 두고 주어짐
  • 출력
    • 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하면 Yes를 출력
    • 일치하지 않는다면 No를 출력
  • 제한
    • 1 <= X <= 1,000,000,000
    • 1 <= N <= 100
    • 1 <= a <= 1,000,000
    • 1 <= b <= 10
  • 시간 제한: 1초
  • 메모리 제한: 1024 MB

 

"""
입출력 예시)

(예제 입력 1) 
260000
4
20000 5
30000 2
10000 6
5000 8
        -> Yes

(예제 입력 2) 
250000
4
20000 5
30000 2
10000 6
5000 8
        -> No
"""

 

 

## 의사코드 ##

# 딕셔너리에 물건의 가격과 개수를 저장해서 총 금액 계산

# dic = {} # 영수증
# for _ in range(n):
#     # 물건의 가격과 개수
#     a, b = map(int, input().split())
#     dic[a] = b
# # 총 금액 계산
# total = 0 # 구매한 물건의 가격과 개수로 계산한 총 금액
# for a, b in dic.items():
#     total += a * b

# if x == total:
#     print('Yes')
# else:
#     print('No')

 

 

 

 

x = int(input()) # 영수증에 적힌 총 금액
n = int(input()) # 물건의 종류 수 
dic = {} # 영수증
for _ in range(n):
    # 물건의 가격과 개수
    a, b = map(int, input().split())
    dic[a] = b
# 총 금액 계산
total = 0 # 구매한 물건의 가격과 개수로 계산한 총 금액
for a, b in dic.items():
    total += a * b

if x == total:
    print('Yes')
else:
    print('No')

 

 

-> 틀림

 

 

 

 

x = int(input()) # 영수증에 적힌 총 금액
n = int(input()) # 물건의 종류 수 

total = 0 # 구매한 물건의 가격과 개수로 계산한 총 금액
for _ in range(n):
    # 물건의 가격과 개수
    a, b = map(int, input().split())
    total += a * b

if x == total:
    print('Yes')
else:
    print('No')

 

 

-> 딕셔너리에 가격과 개수를 저장하지 않고 입력받은 후 바로 계산

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다!