단계별로 풀어보기 : 백준/반복문

[백준] 25304번 영수증 - Python(파이썬)

seunjang 2025. 7. 13. 20:00
728x90

✅  문제 링크

아래 링크를 통해 문제 페이지로 이동할 수 있습니다.

📎 백준 25304번 영수증

 

✅  문제 설명

728x90

✅  문제 풀이

이 문제는 이전에 풀었던 문제들의 핵심 아이디어를 모두 가져와야 합니다.

  1. 초기값 설정:
    • 영수증 총액 X와 물건 종류 수 N을 먼저 입력받습니다.
    • 내가 직접 계산할 총액을 저장할 변수(예: calculated_total)를 만들고 0으로 초기화합니다. (8393번 '합' 문제의 누적 합계 패턴)
  2. N번 반복하기:
    • 물건 종류 수 N만큼 반복해야 하므로 for _ in range(N): 구문을 사용합니다. (10950번 'A+B-3' 문제의 테스트 케이스 패턴)
  3. 반복문 안에서 계산하고 누적하기:
    • for문 안에서 각 물건의 가격 a와 개수 b를 입력받습니다.
    • 해당 물건의 총가격 a * b를 계산합니다.
    • 이 값을 calculated_total 변수에 계속 더해줍니다. (calculated_total += a * b)
  4. 최종 비교하기:
    • 반복문이 모두 끝나면, calculated_total에는 내가 계산한 총액이 담겨있습니다.
    • if문을 사용해 calculated_total과 영수증 총액 X가 같은지 비교하고, 결과에 따라 Yes 또는 No를 출력합니다.

✅  정답 코드

# 영수증에 적힌 총액 X를 입력받습니다.
X = int(input())
# 구매한 물건의 종류 수 N을 입력받습니다.
N = int(input())

# 내가 계산할 총액을 저장할 변수를 0으로 초기화합니다.
calculated_total = 0

# N번만큼 반복하여 각 물건의 정보를 입력받습니다.
for _ in range(N):
    # 물건의 가격 a와 개수 b를 입력받습니다.
    a, b = map(int, input().split())
    # 해당 물건의 가격 * 개수를 계산하여 누적합니다.
    calculated_total += a * b

# 내가 계산한 총액과 영수증 총액이 같은지 비교합니다.
if calculated_total == X:
    print("Yes")
else:
    print("No")

 

728x90