๐Ÿ“• Algorithm/Algorithm

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ๊ฐ€์žฅ ์ข‹์•„๋ณด์ด๋Š” ๊ฒƒ์„ ์„ ํƒ

ํ•œ์ฝ”๋”ฉ 2020. 11. 14. 03:17
728x90
728x90

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ (=ํƒ์š•๋ฒ•)

์–ด๋– ํ•œ ๋ฌธ์ œ๋ฅผ ๋‹จ์ˆœ ๋ฌด์‹ํ•˜๊ฒŒ, ํƒ์š•์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜!

 

โ†’ ํƒ์š•์  ? ํ˜„์žฌ ์ƒํ™ฉ์—์„œ ์ง€๊ธˆ ๋‹น์žฅ ์ข‹์€ ๊ฒƒ๋งŒ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•!

 

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ด์šฉํ•˜๋ฉด ๋งค ์ˆœ๊ฐ„ ๊ฐ€์žฅ ์ข‹์•„ ๋ณด์ด๋Š” ๊ฒƒ์„ ์„ ํƒํ•˜๋ฉฐ, ํ˜„์žฌ์˜ ์„ ํƒ์ด ๋‚˜์ค‘์— ๋ฏธ์น  ์˜ํ–ฅ์— ๋Œ€ํ•ด์„œ๋Š” ๊ณ ๋ คํ•˜์ง€ ์•Š์Œ


๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•

'์‚ฌ์ „์— ์™ธ์šฐ๊ณ  ์žˆ์ง€ ์•Š์•„๋„ ํ’€ ์ˆ˜ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์€ ๋ฌธ์ œ ์œ ํ˜•!'

 

ex) ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ •๋ ฌํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ โ†’ ์ •๋ ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ!

     ์ตœ๋‹จ ๊ฒฝ๋กœ๋ฅผ ๋น ๋ฅด๊ฒŒ ์ฐพ์•„์•ผ ํ•˜๋Š” ๋ฌธ์ œ โ†’ ํ”Œ๋กœ์ด๋“œ ์›Œ์…œ or ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ!

 

๋”ฐ๋ผ์„œ, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์œ ํ˜•์„ ๋Œ€๋น„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๊ฒŒ ์žฅ๋•ก

(์ฐฝ์˜๋ ฅ๊ณผ ์•„์ด๋””์–ด๋ฅผ ์š”๊ตฌํ•˜๋Š” ๋ฌธ์ œ!)

 

โ†’ ๊ธฐ์ค€ ? ex) "๊ฐ€์žฅ ํฐ ์ˆœ์„œ๋Œ€๋กœ" / "๊ฐ€์žฅ ์ž‘์€ ์ˆœ์„œ๋Œ€๋กœ" ์ด์™€ ๊ฐ™์€ ๊ธฐ์ค€์„ ํ†ตํ•ด ์ตœ์ ํ•ด๋ฅผ ์ฐพ์•„์•ผ ํ•œ๋‹ค.


๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์˜ˆ์ œ

๋‹น์‹ ์€ ์Œ์‹์ ์˜ ๊ณ„์‚ฐ์„ ๋„์™€์ฃผ๋Š” ์ ์›์ด๋‹ค. ์นด์šดํ„ฐ์—๋Š” ๊ฑฐ์Šค๋ฆ„๋ˆ์œผ๋กœ ์‚ฌ์šฉํ•  500์›, 100์›, 50์›, 10์› ๋™์ „์ด ๋ฌดํ•œํžˆ ์กด์žฌํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ์†๋‹˜์—๊ฒŒ ๊ฑฐ์Šฌ๋Ÿฌ ์ค˜์•ผ ํ•  ๋ˆ์ด N์›์ผ ๋•Œ ๊ฑฐ์Šฌ๋Ÿฌ ์ค˜์•ผ ํ•  ๋™์ „์˜ ์ตœ์†Œ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ผ. (๋‹จ, N์€ ํ•ญ์ƒ 10์˜ ๋ฐฐ์ˆ˜)

 

"๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋Œ€ํ‘œ ๋ฌธ์ œ!!"

 

โ†’ ์•„์ด๋””์–ด ? "๊ฐ€์žฅ ํฐ ํ™”ํ ๋‹จ์œ„๋ถ€ํ„ฐ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ์ž!"

 

500์› โ†’100์› โ†’ 50์› โ†’ 10์› ์ˆœ์„œ๋Œ€๋กœ

 

ex) N = 1260์›

 

1. 500์›

1260์› >= 500์› x 2 โ†’ ๋”ฐ๋ผ์„œ, 500์› 2๊ฐœ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ์ž

 

2. 100์›

260์› >= 100์› x 2 โ†’ ๋”ฐ๋ผ์„œ, 100์› 2๊ฐœ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ์ž

 

3. 50์›

60์› >= 50์› x 1 โ†’ ๋”ฐ๋ผ์„œ, 50์› 1๊ฐœ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ์ž

 

3. 10์›

10์› >= 10์› x 1 โ†’ ๋”ฐ๋ผ์„œ, 10์› 1๊ฐœ ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ์ž. ๊ทธ๋Ÿผ ๋!

 

๊ทธ๋Ÿฌ๋ฉด ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ์†Œ์Šค์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ์ž‘์„ฑํ•ด์•ผ ํ• ๊นŒ?

 

#include <iostream>
#include <vector>

using namespace std;

int main(void) {
	int N = 1260, res = 0;
	vector<int> coin = { 500, 100, 50, 10 };

	for (int i = 0; i < 4; i++) {
		res += N / coin[i];
		N %= coin[i];
	}

	cout << "๋™์ „ ๊ฐฏ์ˆ˜ : " << res << "๊ฐœ";
} 

์ง์ ‘ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

ํ™”ํ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๊ณ , ๊ฐ ํ™”ํ๋กœ ์ด ๊ธˆ์•ก์„ ๋ชซ ์—ฐ์‚ฐํ•˜๋ฉด ๊ฑฐ์Šฌ๋Ÿฌ์ค˜์•ผํ•  ๋™์ „ ๊ฐฏ์ˆ˜๊ฐ€ ๋‚˜์˜จ๋‹ค.

 

๋˜ํ•œ, ๊ฑฐ์Šฌ๋Ÿฌ์ฃผ๊ณ  ๋‹ค์Œ ์ž‘์€ ํ™”ํ ๋‹จ์œ„๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์œ„ํ•ด ๊ฑฐ์Šฌ๋Ÿฌ์ค€ ํ›„ ๊ธˆ์•ก์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ํ•œ๋‹ค.


๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •๋‹น์„ฑ

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ชจ๋“  ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์— ์ ์šฉํ•  ์ˆ˜ ์—†๋‹ค!

 

โ†’ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์˜ ํ•ด๋ฒ•์„ ์ฐพ์•˜์„ ๊ฒฝ์šฐ, ๊ทธ ํ•ด๋ฒ•์ด ์ •๋‹นํ•œ์ง€ ๊ฒ€ํ† ํ•ด์•ผํ•œ๋‹ค! ์œ„์™€ ๊ฐ™์€ ์˜ˆ์ œ๋ฅผ ๋ณด๋ฉด,

 

'๊ฐ€์ง„ ๋™์ „ ์ค‘์—์„œ ํฐ ๋‹จ์œ„๊ฐ€ ํ•ญ์ƒ ์ž‘์€ ๋‹จ์œ„์˜ ๋ฐฐ์ˆ˜์ด๋ฏ€๋กœ ์ž‘์€ ๋‹จ์œ„์˜ ๋™์ „๋“ค์„ ์ข…ํ•ฉํ•ด ๋‹ค๋ฅธ ํ•ด๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ'

 

ex) 800์›์„ ๊ฑฐ์Šฌ๋Ÿฌ์ค„ ๋•Œ, ํ™”ํ๋‹จ์œ„๊ฐ€ [500, 400,100] ์ธ ๊ฒฝ์šฐ์ผ ๋•Œ, ์œ„์™€ ๊ฐ™์€ ์†Œ์Šค์ฝ”๋“œ๋กœ ๋Œ๋ฆฌ๋ฉด ๋™์ „ ๊ฐฏ์ˆ˜๋Š” 4๊ฐœ๊ฐ€ ๋‚˜์˜จ๋‹ค. ํ•˜์ง€๋งŒ, 800 = 400 + 400์ด๋ฏ€๋กœ ๋˜๋‹ค๋ฅธ ์ตœ์ ํ•ด๊ฐ€ ๋‚˜์˜จ๋‹ค. ๋‹ต์€ ๋™์ „ ๊ฐฏ์ˆ˜ 2๊ฐœ.

 

๋”ฐ๋ผ์„œ, ๋Œ€๋ถ€๋ถ„์˜ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์—์„œ๋Š” ์ด์ฒ˜๋Ÿผ ๋ฌธ์ œ ํ’€์ด๋ฅผ ์œ„ํ•œ ์ตœ์†Œํ•œ์˜ ์•„์ด๋””์–ด๋ฅผ ๋– ์˜ฌ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์ •๋‹นํ•œ์ง€ ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ๋‹ต์„ ๋„์ถœ ๊ฐ€๋Šฅ!

 

โ†’ ๋งŒ์•ฝ, ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์–ด๋–ค ๋ฌธ์ œ ์œ ํ˜•์ธ์ง€ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค๋ฉด ์šฐ์„  '๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜'์„ ์˜์‹ฌํ•˜๋ผ!

 

์˜์‹ฌ ์ˆœ์„œ : ๊ทธ๋ฆฌ๋”” โ†’ ๋‹ค์ด๋‚˜๋ฏน โ†’ ๊ทธ๋ž˜ํ”„

 

 

 

 

 

์ถœ์ฒ˜ : ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ : ์ทจ์—…๊ณผ ์ด์ง์„ ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ธํ„ฐ๋ทฐ ์™„๋ฒฝ ๊ฐ€์ด๋“œ

 

 

728x90
๋ฐ˜์‘ํ˜•