๐Ÿ’œ๊ฐœ๋ฐœ๊ณผ ์ผ์ƒ (โ‰ง∇โ‰ฆ)๏พ‰

[๋ฐฑ์ค€ c++] 2798 ๋ธ”๋ž™์žญ (๋ธ”2) ๋ณธ๋ฌธ

CS/๋ฐฑ์ค€

[๋ฐฑ์ค€ c++] 2798 ๋ธ”๋ž™์žญ (๋ธ”2)

๊ฐ•์˜์„œ 2022. 3. 9. 17:56

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

 

๐Ÿ“Œ ๋ฌธ์ œ

๋ธ”๋ž™์žญ ๊ทœ์น™์ธ ์นด๋“œ์˜ ํ•ฉ์ด 21์„ ๋„˜์ง€ ์•Š๋Š” ํ•œ๋„ ๋‚ด์— ์นด๋“œ์˜ ํ•ฉ์„ ์ตœ๋Œ€ํ•œ ํฌ๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒŒ์ž„์ด๋‹ค.

N์žฅ์˜ ์นด๋“œ์— ์จ์ ธ ์žˆ๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, M์„ ๋„˜์ง€ ์•Š์œผ๋ฉด์„œ M์— ์ตœ๋Œ€ํ•œ ๊ฐ€๊นŒ์šด ์นด๋“œ 3์žฅ์˜ ํ•ฉ์„ ๊ตฌํ•ด ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ•ด๋‹น ๋ฌธ์ œ๋Š” ์™„์ „ํƒ์ƒ‰์œผ๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‹ค ์ฐพ์œผ๋ฉด ๋œ๋‹ค.

๋ฌธ์ œ์˜ ํŠน์ด์ ์€ ๊ผญ 3์žฅ์„ ๊ณจ๋ผ์•ผํ•œ๋‹ค๋Š” ์ ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ค‘์ฒฉ ๋ฃจํ”„๋ฌธ์„ 3๊ฐœ ๊ฒน์ณ์„œ 3๊ฐœ๋ฅผ ๊ณ ๋ฅธ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉด ๋œ๋‹ค.

 

 

์ฐธ๊ณ ๋กœ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ ์™„์ „ํƒ์ƒ‰์ผ ๊ฒฝ์šฐ ์‹œ๊ฐ„์ดˆ๊ณผ๋กœ ์ธํ•ด ๋ฌธ์ œ๋ฅผ ํ’€์ง€ ๋ชปํ•œ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด๋Š” ๋Œ€๋ถ€๋ถ„ ์‹œ๊ฐ„ ์‹ธ์›€์ด๊ธฐ ๋•Œ๋ฌธ์— ์žฌ๊ท€ํ•จ์ˆ˜๋Š” ๊ทธ๋ž˜์„œ ๋˜๋„๋ก์ด๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

์žฌ๊ท€ํ•จ์ˆ˜๋Š” ๋ง ๊ทธ๋Œ€๋กœ ํ•จ์ˆ˜๋ฅผ ๊ผฌ๋ฆฌ๊ฐ€ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ๋ฉด์„œ ํ•จ์ˆ˜ ํ˜ธ์ถœ์ด ์ด๋ค„์ง€๊ธฐ ๋•Œ๋ฌธ์—

์ฝ”๋“œ๊ฐ€ ๋น„๊ต์  ๊ฐ„๋‹จํ•ด๋„ ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ ์„ ์กฐ์‹ฌํ•ด์•ผํ•œ๋‹ค. 

 

 

 

๐Ÿ’ป ์ •๋‹ต ์ฝ”๋“œ

#include <iostream>

using namespace std;

int main() {

	int N; cin >> N; if (N < 3 || N > 100) return 0;
	int M; cin >> M; if (M < 10 || M > 300000) return 0;

	int* num = new int[N];
	for (int i = 0; i < N; i++) cin >> num[i];
	//์ˆซ์ž ์ž…๋ ฅ์นธ

	int min = 9999999999;
	int result;

	for (int i = 0; i < N - 2; i++) {
		for (int j = i + 1; j < N - 1; j++) {
			for (int k = j + 1; k < N; k++) {
				int sum = num[i] + num[j] + num[k];
				int dis = M - sum;
				if (dis >= 0 && dis < min) {
					min = dis;
					result = sum;
                    if(result == M){
                        cout <<result << endl;
                        return 0;
                    }
				}

			}
		}
	}

	cout << result << endl;

	return 0;
}

 

โฑ ๊ฒฐ๊ณผ