π•ƒπ•¦π•„π•šπ•£

γ€ŒβŒ¨οΈα΄„s」PS/λ°±μ€€_μˆ˜ν•™&κ΅¬ν˜„

[Baekjoon/λ°±μ€€][25304][C/C++] 영수증

by λ£¨λ°€π•ƒπ•¦π•„π•šπ•£2023. 1. 17.
728x90
λ°˜μ‘ν˜•
γ€Žλͺ©μ°¨γ€
0. κ°œμš”

1. 문제
2. 풀이
3. μ½”λ“œ

0. κ°œμš”

백쀀은 문제 μžμ²΄λŠ” 어렡지 μ•Šμ§€λ§Œ, 지문이 λ³΅μž‘ν•˜μ—¬ μ–΄λ ΅κ²Œ λŠκ»΄μ§€λŠ” λ¬Έμ œλ“€μ΄ μ’…μ’… μžˆλŠ” 것 κ°™λ‹€. 이 λ¬Έμ œλŠ” 반볡문과 쑰건문에 λŒ€ν•œ κ°œλ…λ§Œ μžˆλ‹€λ©΄ μ‰½κ²Œ ν’€ 수 μžˆλŠ” λ¬Έμ œμ΄λ‹€.

1. 문제

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

 

25304번: 영수증

μ€€μ›μ΄λŠ” μ €λ²ˆ 주에 μ‚΄λ©΄μ„œ 처음으둜 μ½”μŠ€νŠΈμ½”λ₯Ό κ°€ λ΄€λ‹€. 정말 λ©‹μ‘Œλ‹€. 그런데, λͺ‡ 개 담지도 μ•Šμ•˜λŠ”λ° μˆ˜μƒν•˜κ²Œ 높은 κΈˆμ•‘이 λ‚˜μ˜€λŠ” κ²ƒμ΄λ‹€! μ€€μ›μ΄λŠ” μ˜μˆ˜μ¦μ„ λ³΄λ©΄μ„œ μ •ν™•ν•˜κ²Œ κ³„μ‚°λœ 것

www.acmicpc.net

[문제]

μ€€μ›μ΄λŠ” μ €λ²ˆ 주에 μ‚΄λ©΄μ„œ 처음으둜 μ½”μŠ€νŠΈμ½”λ₯Ό κ°€ λ΄€λ‹€. 정말 λ©‹μ‘Œλ‹€. 그런데, λͺ‡ 개 담지도 μ•Šμ•˜λŠ”λ° μˆ˜μƒν•˜κ²Œ 높은 κΈˆμ•‘이 λ‚˜μ˜€λŠ” κ²ƒμ΄λ‹€! μ€€μ›μ΄λŠ” μ˜μˆ˜μ¦μ„ λ³΄λ©΄μ„œ μ •ν™•ν•˜κ²Œ κ³„μ‚°λœ 것이 λ§žλŠ”μ§€ 확인해보렀 ν•œλ‹€.

μ˜μˆ˜μ¦μ— 적힌,

  • κ΅¬λ§€ν•œ 각 물건의 가격과 개수
  • κ΅¬λ§€ν•œ λ¬Όκ±΄λ“€μ˜ 총 κΈˆμ•‘

을 보고, κ΅¬λ§€ν•œ 물건의 가격과 개수둜 κ³„μ‚°ν•œ 총 κΈˆμ•‘μ΄ μ˜μˆ˜μ¦μ— 적힌 μ΄ κΈˆμ•‘κ³Ό μΌμΉ˜ν•˜λŠ”μ§€ κ²€μ‚¬ν•΄λ³΄μž.

[μž…λ ₯]

첫째 μ€„μ—λŠ” μ˜μˆ˜μ¦μ— 적힌 총 κΈˆμ•‘ Xκ°€ μ£Όμ–΄μ§„λ‹€.

λ‘˜μ§Έ μ€„μ—λŠ” μ˜μˆ˜μ¦μ— 적힌 κ΅¬λ§€ν•œ 물건의 μ’…λ₯˜μ˜ 수 N이 μ£Όμ–΄μ§„λ‹€.

이후 N개의 μ€„μ—λŠ” 각 물건의 가격 a와 κ°œμˆ˜ bκ°€ 곡백을 사이에 두고 주어진닀.

[좜λ ₯]

κ΅¬λ§€ν•œ 물건의 가격과 개수둜 κ³„μ‚°ν•œ 총 κΈˆμ•‘μ΄ μ˜μˆ˜μ¦μ— 적힌 μ΄ κΈˆμ•‘κ³Ό μΌμΉ˜ν•˜λ©΄ Yesλ₯Ό 좜λ ₯ν•œλ‹€. μΌμΉ˜ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ Noλ₯Ό 좜λ ₯ν•œλ‹€.

[μ œν•œ]

  • β€Š1≤X≤1000000000β€Š
  • β€Š1≤N≤100β€Š
  • β€Š1≤a≤1000000β€Š
  • β€Š1≤b≤10β€Š

[예제 μž…λ ₯ 1]

260000
4
20000 5
30000 2
10000 6
5000 8

[예제 좜λ ₯ 1]

Yes

μ˜μˆ˜μ¦μ— 적힌 ꡬ맀할 λ¬Όκ±΄λ“€μ˜ λͺ©λ‘μœΌλ‘œ κ³„μ‚°ν•œ 총 κΈˆμ•‘μ€ 20000 × 5 + 30000 × 2 + 10000 × 6 + 5000 × 8 = 260000원이닀. μ΄λŠ” μ˜μˆ˜μ¦μ— 적힌 총 κΈˆμ•‘μΈ 260000원과 μΌμΉ˜ν•œλ‹€. 

[예제 μž…λ ₯ 2]

250000
4
20000 5
30000 2
10000 6
5000 8

[예제 좜λ ₯ 2]

No

2. 풀이

μ˜μˆ˜μ¦μ— 적힌 총 κΈˆμ•‘ X와, a*bλ₯Ό N번 λ°˜λ³΅ν•œ κ°’λ“€μ˜ 합이 μ„œλ‘œ μΌμΉ˜ν•˜λ©΄ λœλ‹€.

μ½”λ“œμ˜ λ‹¨μˆœν•¨μ„ μœ„ν•˜μ—¬ μΆ”κ°€ λ³€μˆ˜ μ„ μ–Έ 없이, X -= (a * b) 둜 μœ„ λ‚΄μš©μ„ νŒλ³„ν•˜κ²Œ λ§Œλ“€μ—ˆλ‹€. 

이후, Xκ°’κ³Ό if문을 ν†΅ν•˜μ—¬ κΈˆμ•‘μ˜ 일치 μ—¬λΆ€λ₯Ό νŒλ³„ν•˜κ³  ν•΄λ‹Ή 값을 좜λ ₯ν•œλ‹€.

3. μ½”λ“œ

#pragma warning(disable:4996) //visual studio scanf 였λ₯˜ 방지.
#include <stdio.h>

int main(int argc, char* argv[]) {
	int X = 0;
	int N, a, b;

	scanf("%d", &X);
	scanf("%d", &N);
	for (int i = 0; i < N; i++) {
		scanf("%d %d", &a, &b);
		X -= (a * b);
	}

	if (X == 0)
		printf("Yes");
	else if (X!=0)
		printf("No");

	return 0;
}
728x90
λ°˜μ‘ν˜•