25304번: 영수증
준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것
www.acmicpc.net
10950 을 풀고 자신감을 얻어 도전한 영수증 문제.
문제가 길어 위축될 수 있지만 잘 읽어보면
1) 영수증에 적힌 총 금액 x를 입력
2) 물건의 종류의 수 n을 입력
X = int(input())
N = int(input())
3) n개의 줄에 물건의 가격 a와 b가 공백을 사이에 두고 주어짐(입력)
-2번에서 입력받은 n 만큼 반복되어야 하기에, for의 range를 n으로 설정해 주었다.
for문 작성에 앞서 '총 금액'을 계산할 list가 필요하기에 빈 리스트를 하나 만들어 줌.
bill_list = []
for j in range(1,N+1):
a, b = map(int, input().split())
4) for문 안에 a(물건의 가격)와 b(개수)를 곱한 금액을 list에 추가해 주었다.
bill_list.append(a * b)
---> for문이 수행되는 동안 n번 만큼의 물건 개수와 가격을 받고, 각각을 곱한 값이 bill_list에 들어간다.
* append 함수를 통해 list에 하나씩 넣어주었다. 처음에는 extend를 사용했으나, 넣으려는 수가 int이고 literable이 아니라서 오류가 났기 때문에 append로 변경했다.
5) list의 합이 x(총 금액) 과 맞는지 비교 해서 맞으면 'yes', 틀리면 'no' 출력
if sum(bill_list) == X:
print("Yes")
else:
print("No")
---> 문제에서 원하는 출력값은 'yes' or 'no' 하나이기 때문에 이 외의 과정에는 print를 쓸 필요가 없다!
전체 코드:
X = int(input())
N = int(input())
bill_list = []
for j in range(1,N+1):
a, b = map(int, input().split())
bill_list.append(a * b)
if sum(bill_list) == X:
print("Yes")
else:
print("No")
'python > 연습문제 풀이' 카테고리의 다른 글
[백준] Python 4673번 셀프 넘버 (0) | 2023.01.19 |
---|---|
[내가만든문제] 로또 번호 조합하기 (0) | 2022.10.27 |
[백준] python 10950 : A+B -3 (0) | 2022.10.24 |
[백준] python 10807 : 개수 세기 (0) | 2022.10.24 |
[백준] python 2884번: 알람 시계 (0) | 2022.10.20 |
댓글