CS/๋ฐฑ์ค
[๋ฐฑ์ค c++] 2798 ๋ธ๋์ญ 2ํธ (๋ธ2)
๊ฐ์์
2023. 2. 24. 16:41
๐ ๋ฌธ์
์นด๋์ ๊ฐ์ N, M
๋์งธ์ค ๋ถํฐ๋ ์นด๋์ ์ฐ์ฌ ์๋ ์, ( 10๋ง์ ๋์ง ์์ )
ํฉ์ด M์ ๋์ง ์๋ ์นด๋ 3์ฅ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ผ.
๋ง์ฝ ์นด๋๋ฅผ 3์ฅ ์ด์์ด๊ฑฐ๋, ์ฌ์ฉ์๊ฐ ์ํ๋ ์นด๋ ์ฅ์๋ฅผ ์ ๋ ฅ๋ฐ์ ๊ฒฝ์ฐ๋, ์ฌ๊ทํจ์๋ก ๊ตฌํ์ ํด์ผํ์ง๋ง
3์ฅ์ด๋ผ ์ถฉ๋ถํ ์ผ์ค ๋ฐ๋ณต๋ฌธ์ ํตํด์ 3๊ฐ์ง๋ฅผ ๊ณ ๋ฅธ ํ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ณ์ฐํ ์ ์๋ค.
๋ธ๋ฃจํธ ํฌ์ค๋ก ์ถฉ๋ถํ ํ ์ ์๋ ๋ฌธ์
๋ฐ๋ณต๋ฌธ์ ์ธ ๋ ๋ ๊ฐ์ด๋ ์ด๋ฐ ๊ฐ์ด index๊ฐ ๋์ด๊ฐ์ง ์๋๋ก๋ง ์ฃผ์ํ๋ฉด ๋๋ค.
๐ป ์ ๋ต ์ฝ๋
#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;
}