[백준] 25304번 : 영수증 (3단계) (C++)

2024. 1. 9. 09:32· 프로그래밍/코딩 테스트 연습

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

 

25304번: 영수증

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

www.acmicpc.net

 

 


 

문제

 

 

 

해석

 

물건 여러 개를 입력받아 최종적인 값을 구한 후 처음 입력한 값과 일치하면 Yes 일치하지 않으면 No를 출력합니다.

 

총금액을 구하려면 물건 수만큼 반복시키는 반복문이 필요하고 물건 값을 비교하는 조건문을 사용해야 해 if문으로 출력해야 합니다.

 

물건의 종류가 매우 많다면, 반복문은 시간복잡도가 상수가 아니기 때문에 주어진 값을 바로바로 계산하고 그때마다 변수에 더하해야 하지만, 물건의 종류가 100개 이하이기 때문에 반복문을 사용해도 문제가 없음을 확인할 수 있습니다.

 

 

 

 

 

풀이

 

첫 줄에 주어지는 금액은 마지막 if문으로 처리하면 Yes, No를 출력하는 코드를 작성할 수 있습니다.

 

if (sum == X)
    cout << "Yes";
else
    cout << "No";

 

물건의 종류는 반복 횟수를 알려주기 때문에 이를 이용해 다음과 같이 반복문을 쓸 수 있고 sum 변수를 통해 총금액 합을 구합니다.

 

int sum=0;

for (int i = 0; i < N; i++) {
    cin >> a >> b;
    sum += a * b;
}

 

sum을 0으로 초기화하지 않는 다면 쓰레기 값이 같이 더해집니다.

 

최종적인 코드는 다음과 같습니다.

 

#include<iostream>
using namespace std;

int main() {
	int X, N, a, b, sum=0;
	cin >> X >> N;
	for (int i = 0; i < N; i++) {
		cin >> a >> b;
		sum += a * b;
	}
	if (sum == X)
		cout << "Yes";
	else
		cout << "No";
}

 

 


 

정리

 

이 문제는 앞에서 푼 반복문 문제의 논리를 사용한 문제입니다.

 

1. 횟수를 입력받고 반복시키는 코드

https://whitecode2718.tistory.com/66

 

[백준] 10950번 : A+B - 3 (3단계) (C++)

https://www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 해석 테스트 케이스를 만드는 방법을 연습하는 문제입니다.

whitecode2718.tistory.com

 

 

2. 합 알고리즘

https://whitecode2718.tistory.com/67

 

[백준] 8393번 : 합 (3단계) (C++)

https://www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 해석 반복문을 학습하면 가장 먼저 접하는 1부터 n까지의 합을 구하는

whitecode2718.tistory.com

 

'프로그래밍 > 코딩 테스트 연습' 카테고리의 다른 글

[백준] 11022번 : A+B - 8 (3단계) (C++)  (0) 2024.01.10
[백준] 11021번 : A+B - 7 (3단계) (C++)  (0) 2024.01.10
[백준] 8393번 : 합 (3단계) (C++)  (0) 2024.01.09
[백준] 10950번 : A+B - 3 (3단계) (C++)  (1) 2024.01.09
[백준] 2739번 : 구구단 (3단계) (C++)  (1) 2024.01.09
'프로그래밍/코딩 테스트 연습' 카테고리의 다른 글
  • [백준] 11022번 : A+B - 8 (3단계) (C++)
  • [백준] 11021번 : A+B - 7 (3단계) (C++)
  • [백준] 8393번 : 합 (3단계) (C++)
  • [백준] 10950번 : A+B - 3 (3단계) (C++)
w_w
w_w
데이터 사이언스가 목표인 학생입니다. / 공부한 내용을 간단히 정리하는 블로그입니다. / 비공개 게시글은 저작권 보호를 위해 개인 소장 용도로만 사용합니다.
w_w
공부용
w_w
전체
오늘
어제
  • 전체 글 (78)
    • 대표글 (4)
    • 프로그래밍 (71)
      • C++ (8)
      • Python (1)
      • 알고리즘 (1)
      • 코딩 테스트 연습 (61)
      • 게임 (0)
    • 데이터베이스 (0)
      • 데이터 분석 및 시각화 (0)
      • 머신 러닝 (0)
    • 공학 (2)
      • 수학 기본 개념 (2)
    • 정보 (1)
      • AICE (1)
      • Excel (0)
      • Access (0)
      • kaggle (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • C언어 링킹
  • IT
  • 엑셀 파일 통합
  • 머신러닝
  • pandas
  • c++
  • 프로그래밍 언어
  • 백준
  • 텍스트I/O
  • 자료구조
  • 객체
  • Excel
  • 데이터 분석 패키지
  • 클래스
  • python
  • 연결 리스트
  • 연산자
  • 바이너리I/O
  • Matplotlib
  • K-평균 군집화
  • 머신 러닝
  • 데이터 시각화
  • 알고리즘
  • 연산자 중복
  • 데이터 분석
  • 그래프 저장하기
  • 그래프 꾸미기
  • K-최근접 이웃
  • 바이너리 파일
  • 데이터 연산

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
w_w
[백준] 25304번 : 영수증 (3단계) (C++)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.