본문 바로가기
프로그래밍 및 개발/알고리즘 문제풀이

[백준] 25304. 영수증 - 알고리즘 문제풀이

by typenine9 2022. 11. 24.
300x250

 

문제.

준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것이 맞는지 확인해보려 한다.
영수증에 적힌,
구매한 각 물건의 가격과 개수구매한 물건들의 총 금액
을 보고, 구매한 물건의 가격과 개수로 계산한 총 금액이 영수증에 적힌 총 금액과 일치하는지 검사해보자.

 

 

25304번: 영수증

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

www.acmicpc.net

 

총금액과

구매한 물건 수,

각 물품의 가격과 수량을 입력으로 주면

 

출력에는 입력시 받은 총금액과 일치하는지 여부를 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()을 활용하여 단번에 덧셈을 하였고,

 

 

[python] 리스트 더하기 - sum()

백준으로 파이썬 문제를 풀다가 리스트 안에 요소들을 더해야 하는 경우가 생겼다. for문으로 열어서 각 요소들을 꺼낸 다음 더하기를 진행해야 하나 싶었지만 찾아보니 파이썬 내에 리스트 내

typenine9.tistory.com

 

if문으로 x와 l을 비교하여 일치 여부에 따른 출력을 진행했다.

<