300x250
문제.
준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다.
영수증에 적힌,
구매한 각 물건의 가격과 개수구매한 물건들의 총 금액
을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.
총금액과
구매한 물건 수,
각 물품의 가격과 수량을 입력으로 주면
출력에는 입력시 받은 총금액과 일치하는지 여부를 Yes와 No로 출력하는 문제다.
260000
4
20000 5
30000 2
10000 6
5000 8
이와 같은 입력을 받았을 시 출력은
Yes
로 나오면 된다.
풀이.
x = int(input())
n = int(input())
l = list()
for i in range(n):
tmp = list(map(int, input().split()))
l.append(tmp[0]*tmp[1])
if x==sum(l):
print('Yes')
else:
print('No')
x는 입력받을 총금액,
n은 구매한 물품의 수이다.
l은 구매한 물품의 가격, 수량 정보를 담을 리스트다.
구매한 물품 수만큼 for문을 돌면서
tmp 변수에 각 물품의 가격, 수량을 입력받는다.
물품 하나당 가격과 수량을 입력받으면 바로 두개를 곱셈하여
리스트 l에 곱한 값을 넣었다.
입력을 다 받고 리스트 l에는 각 물품의 가격*수량 값이 배열 형식으로 들어있게 된다.
이때 x는 입력 받은 총 금액으로
리스트 l 내의 전체 덧셈하는 값과 일치하는지 확인해야 한다.
l의 전체 덧셈을 하기 위해
파이썬 내장함수인 sum()을 활용하여 단번에 덧셈을 하였고,
if문으로 x와 l을 비교하여 일치 여부에 따른 출력을 진행했다.