๐Ÿ“• Algorithm/Solved

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์žก์Šค] ์ƒ์ž ๊พธ๋ฏธ๊ธฐ (C++, ์™„์ „ ํƒ์ƒ‰)

ํ•œ์ฝ”๋”ฉ 2020. 7. 9. 10:22
728x90
728x90

๋ฌธ์ œ

 

๋ฉด์ด 6๊ฐœ์ธ ์ƒ์ž๊ฐ€ ์žˆ๋‹ค. ์ด๋ฅผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ƒ‰์ข…์ด๋ฅผ ๋ถ™์—ฌ ๊พธ๋ฐ€๋ ค๊ณ  ํ•˜๋Š”๋ฐ, ๋‹จ ์กฐ๊ฑด์ด ์žˆ๋‹ค. ์ธ์ ‘ํ•œ ๋ฉด์— ๊ฐ™์€ ์ƒ‰์˜ ์ƒ‰์ข…์ด๋ฅผ ๋ถ™์ด๋ฉด ์•ˆ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ, ํ•œ ๋ฉด์—๋Š” ํ•œ ์žฅ์˜ ์ƒ‰์ข…์ด๋งŒ ๋ถ™์ผ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ƒ‰์˜ ์ƒ‰์ข…์ด๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜์—ฌ ์ƒ์ž์˜ ๋ชจ๋“  ๋ฉด์— ๋ถ™์ผ ์ˆ˜ ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ƒ‰์ข…์ด์˜ ์žฅ์ˆ˜ N ( 1 <= N <= 1,000 ) ์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์— ๊ฐ๊ฐ์˜ ์ƒ‰์ข…์ด์˜ ์ƒ‰๊น”์„ ๋‚˜ํƒ€๋‚ด๋Š” N๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ƒ‰๊น”์€ ์–‘์˜ ์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒ”์œ„์˜ ์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ์ƒ์ž๋ฅผ ๊พธ๋ฐ€ ์ˆ˜ ์žˆ์œผ๋ฉด “YES”, ์•„๋‹ˆ๋ฉด “NO”๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 


#include <iostream>
#include <vector>

using namespace std;

int main() {

	int n;
	cin >> n;

	vector<int> arr(n+1, 0);
	
	for (int i = 0; i < n; i++) {
		int tmp;
		cin >> tmp;
		arr[tmp]++;
	}

	int cnt = 0, cnt2 = 0;

	for (int i = 1; i <= n; i++) {
		if (arr[i] >= 2) {
			cnt++;
			continue;
		}
		
		if (arr[i] >= 1)
			cnt2++;
	}

	if (cnt >= 3 || cnt2 >= 6 || (cnt >= 2 && cnt2 >= 2) || (cnt >= 1 && cnt2 >= 4)) 
		cout << "YES";
	else
		cout << "NO";

	return 0;
}

์™„์ „ ํƒ์ƒ‰์œผ๋กœ ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ํƒ์ƒ‰ ๊ธฐ๋ฒ•์ด ์žˆ์ง€๋งŒ ์ด ๋ฌธ์ œ์—์„œ๋Š” ์™„์ „ ํƒ์ƒ‰์˜ ํšจ์œจ๋„ ๋‚˜์˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ๋กœ์ง์ด ๋‹จ์ˆœํ•ด์„œ ๋” ๋น ๋ฅผ์ˆ˜๋„ ์žˆ๊ฒ ๊ตฐ์š”.

 

์ •์œก๋ฉด์ฒด์— ์ธ์ ‘ํ•œ ๋ฉด์— ์ƒ‰์ด ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ๋ถ™ํžˆ๋Š” ๋ฐฉ๋ฒ•์€ ์ด 4๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ๋‹ค๋ฅธ ์ƒ‰์ข…์ด๋ฅผ 1๊ฐœ์”ฉ 6๊ฐœ๋ฅผ ๋ณด์œ ํ•œ ๊ฒฝ์šฐ ( ๋นจ, ์ฃผ, ๋…ธ, ์ดˆ, ํŒŒ, ๋‚จ, ๋ณด )

2. ๋‹ค๋ฅธ ์ƒ‰์ข…์ด๋ฅผ 2๊ฐœ์”ฉ 3๊ฐœ๋ฅผ ๋ณด์œ ํ•œ ๊ฒฝ์šฐ ( ๋นจ, ๋นจ, ๋…ธ, ๋…ธ, ๋‚จ, ๋‚จ )

3. ๋‹ค๋ฅธ ์ƒ‰์ข…์ด๋ฅผ 2๊ฐœ์”ฉ 2๊ฐœ๋ฅผ ๋ณด์œ ํ•˜๊ณ , 1๊ฐœ์”ฉ 2๊ฐœ๋ฅผ ๋ณด์œ ํ•œ ๊ฒฝ์šฐ ( ๋นจ, ๋นจ, ์ฃผ, ์ฃผ, ๋…ธ, ์ดˆ )

4. ๋‹ค๋ฅธ ์ƒ‰์ข…์ด๋ฅผ 2๊ฐœ์”ฉ 1๊ฐœ๋ฅผ ๋ณด์œ ํ•˜๊ณ , 1๊ฐœ์”ฉ 4๊ฐœ๋ฅผ ๋ณด์œ ํ•œ ๊ฒฝ์šฐ ( ๋นจ, ๋ฐœ, ์ฃผ, ๋…ธ, ์ดˆ, ํŒŒ, ๋‚จ )

 

๋”ฐ๋ผ์„œ, ๊ฐ๊ฐ์˜ ์ƒ‰์ข…์ด์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ฐฐ์—ด ๋˜๋Š” ๋ฒกํ„ฐ์˜ ์ธ๋ฑ์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ €์žฅํ•˜๊ณ , ํ•ด๋‹น ์ธ๋ฑ์Šค์˜ ๊ฐ’์ด 1, 2 ์ด์ƒ์ธ์ง€ ๊ฒ€์‚ฌํ•˜์—ฌ ๊ฐฏ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ณ  ๋‚˜์„œ, ์œ„ 4๊ฐ€์ง€ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด "YES"๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ์กฐ๊ฑด์ด ํ•˜๋‚˜๋„ ํ•ด๋‹น๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด "NO"๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•