Home Week1 - Greedy Algorithm
Post
Cancel

Week1 - Greedy Algorithm

๐Ÿ“ ๋ฌธ์ œ ๋ชฉ๋ก



1. ์„คํƒ• ๋ฐฐ๋‹ฌ

๋ฐฑ์ค€ ๋กœ๊ทธ๋ฅผ ๋ณด๋‹ˆ ์ž‘๋…„ ์ด๋ง˜๋•Œ์ฏค ํ•œ๋ฒˆ ํ’€์—ˆ๋˜ ๋ฌธ์ œ์˜€๋‹ค.
์šฐ์„  5kg์งœ๋ฆฌ๋กœ๋งŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ๊ฐœ์ˆ˜ res๋ฅผ ๊ตฌํ•œ ํ›„
res>0์ด๊ณ  ๋‚˜๋จธ์ง€๊ฐ€ 3kg๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์งˆ๋•Œ๊นŒ์ง€ ๊ณ„์† 5kg์งœ๋ฆฌ๋ฅผ ํ•˜๋‚˜์”ฉ ๋นผ ์ฃผ์—ˆ๋‹ค.
5kg ๊ฐœ์ˆ˜๊ฐ€ 0์ด ๋  ๋™์•ˆ ํ•œ๋ฒˆ๋„ 3kg๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์—ˆ๋‹ค๋ฉด -1๋ฅผ, ์•„๋‹ˆ๋ฉด ์ด ๋ด‰์ง€ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•ด ์ถœ๋ ฅํ•˜๊ฒŒ ํ–ˆ๋‹ค.
๋‚œ์ด๋„๋„ ์–ด๋ ต์ง€ ์•Š๊ณ  ํ•œ๋ฒˆ ํ’€์—ˆ๋˜ ๋ฌธ์ œ๋ผ ๊ทธ๋Ÿฐ์ง€ ํ’€์ด๋Š” ๊ธˆ๋ฐฉ ์ƒ๊ฐ๋‚ฌ๋‹ค.

์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>

using namespace std;

int main() {
	int n, res;
	
	cin >> n;
	res = n / 5;
	
	while ((res > 0) && ((n - res * 5) % 3) != 0) res--;

	cout << (((n - res * 5) % 3 != 0) ? -1 : res + (n - res * 5) / 3);
}


2. ๋กœํ”„

์ด ๋ฌธ์ œ ํ’€๋ฉด์„œ ์ผ๋˜ ๋ฉ”๋ชจ๊ฐ€ ์–ด๋”จ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๐Ÿ˜‘๐Ÿ’ฆ ๋ญ”๊ฐ€ ๊ณ ๋ฏผํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐโ€ฆ
์ผ๋‹จ ์•ฝํ•œ ๋กœํ”„๋Š” ๋ฌด๊ฑฐ์šด ๋ฌผ์ฒด๋ฅผ ๋“ค๋ฉด ๋Š์–ด์ง€๊ธฐ ์‰ฌ์šฐ๋ฏ€๋กœ ๋ณ„ ๋„์›€์ด ๋˜์ง€ ์•Š์œผ๋‹ˆ, ๋‚˜์ค‘์— ๊ณ ๋ คํ•˜๋„๋ก ํ–ˆ๋‹ค.
์ฆ‰ ๋กœํ”„๋ฅผ ํŠผํŠผํ•œ ์ˆœ์œผ๋กœ(=๋‚ด๋ฆผ์ฐจ์ˆœ) ์ •๋ ฌํ–ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ์ˆœ์„œ๋Œ€๋กœ ๋กœํ”„๋ฅผ ํฌํ•จ์‹œํ‚จ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ ๋“ค ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ค‘๋Ÿ‰์„ ๊ณ„์‚ฐํ•˜์—ฌ, ํ˜„์žฌ๊นŒ์ง€ ๊ตฌํ•ด์ง„ ์ตœ๋Œ€ ์ค‘๋Ÿ‰๋ณด๋‹ค ๋งŽ์•„์ง€๋ฉด ์ตœ๋Œ€ ์ค‘๋Ÿ‰๊ฐ’์„ ๊ฐฑ์‹ ํ–ˆ๋‹ค.
(์ตœ๋Œ€ ์ค‘๋Ÿ‰์€ ์‚ฌ์šฉํ•˜๋Š” ๋กœํ”„๋“ค ์ค‘ ๊ฐ€์žฅ ์•ฝํ•œ ๋กœํ”„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฑฐ๊ธฐ์— ์ „์ฒด ๋กœํ”„๊ฐœ์ˆ˜๋ฅผ ๊ณฑํ•œ ๊ฐ’์ด๋‹ค. ๊ฐ€์žฅ ์•ฝํ•œ ๋กœํ”„๊ฐ€ ๋Š์–ด์ง€๋ฉด ์•ˆ ๋˜๋‹ˆ๊นŒ.)

์ฝ”๋“œ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include<iostream>
#include<vector>
#include<algorithm>

using namespace std;

int main(){
	int n, cnt;
	int max=0;
	cin>>n;

	vector<int> rope(n,0);
	
	for(int i=0; i<n; i++){
		cin>>rope[i];
	}
	
	sort(rope.begin(), rope.end(), greater<int>());
	
	for(cnt=1; cnt<=n; cnt++){
		if(rope[cnt-1]*cnt>max) max=rope[cnt-1]*cnt;
	}
	
	cout<<max;
}


3. ๋„์„œ๊ด€ (ํ†ต๊ณผ X)

ํ’€์ด ์ƒ๊ฐํ•ด๋‚ด๋Š”๋ฐ๋„ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ ธ๋Š”๋ฐ, ๋งˆ์ง€๋ง‰์— ์‹ค์ˆ˜ํ•œ ํƒ“์— ํ†ต๊ณผํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
์–ด๋””๊ฐ€ ์ž˜๋ชป๋๋Š”์ง€ ํ•œ์ฐธ์„ ๋ชป ์ฐพ์•„์„œ ์ฃผ์œ„์— ๋ฌผ์–ด๋ดค๋Š”๋ฐ ์•Œ๊ณ ๋‚˜๋‹ˆ ๋„ˆ๋ฌด๋‚˜ ํ—ˆ๋ฌดํ•œโ€ฆ์ด๊ฑธ ์™œ ๋ชป๋ดค์ง€?ใ…‹ใ…‹
ํ•œ๋‹ฌ ๋’ค์— ๋‹ค์‹œ ํ’€์–ด๋ณด๊ณ  ํ’€์ด ์ž‘์„ฑํ•ด์•ผ๊ฒ ๋‹ค.

This post is licensed under CC BY 4.0 by the author.

First Post

Week2 - Simple DP

Comments powered by Disqus.