HyeLog
๋ฐฑ์ค_14225_๋ถ๋ถ์์ด์ ํฉ ๋ณธ๋ฌธ
๐๋ฌธ์ : https://www.acmicpc.net/problem/14225
14225๋ฒ: ๋ถ๋ถ์์ด์ ํฉ
์์ด S๊ฐ ์ฃผ์ด์ก์ ๋, ์์ด S์ ๋ถ๋ถ ์์ด์ ํฉ์ผ๋ก ๋์ฌ ์ ์๋ ๊ฐ์ฅ ์์ ์์ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์๋ฅผ ๋ค์ด, S = [5, 1, 2]์ธ ๊ฒฝ์ฐ์ 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)์ ๋ง๋ค
www.acmicpc.net
๐์๊ณ ๋ฆฌ์ฆ: ๋ธ๋ฃจํธํฌ์ค - ๋นํธ๋ง์คํฌ
๐๋ถ๋ถ์์ด ๊ฐ๋ ) ๋ถ๋ถ ์์ด์ ์๋ ์์ด์ ์์๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
์๋ฅผ ๋ค์ด, ์์ด S={1,2,5}์ ๋ถ๋ถ์์ด์ {},{1},{2},{5},{1,2},{1,5},{2,5},{1,2,5} ์ด๋ค. ({5,2} ๋ฑ์ ๋ถ๋ถ์์ด์ด ์๋๋ค!)
๐๋ถ๋ถ์์ด์ ๋ง๋๋ ๋ฐฉ๋ฒ)
1. ์ฌ๊ท ํธ์ถ
2. ๋นํธ๋ง์คํฌ (๐์ด๋ฒ์๋ ๋นํธ๋ง์คํฌ๋ก ํ์ด๋ณด์๋ค.)
๐์์ด๋์ด: ํด๋น ์ซ์๊ฐ ๋ถ๋ถ์์ด์ ํฉ์ผ๋ก ๋์จ์ ์ด ์์ผ๋ฉด check ๋ฐฐ์ด์ true๋ฅผ ์ ์ฅ
๐์ฝ๋:
#include <iostream>
#include <vector>
#define MAX (20*100000+1)
using namespace std;
bool check[MAX];
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int N;
cin >> N;
vector<int> s(N);
for (int i = 0; i < N; i++) {
cin >> s[i];
}
for (int i = 0; i < (1 << N); i++) {
int sum = 0;
for (int j = 0; j < N; j++) {
if ((i & (1 << j)) != 0) {
sum += s[N - 1 - j];
}
}
check[sum] = true;
}
for (int i = 1;; i++) {
if (check[i] == false) {
cout << i << '\n';
break;
}
}
return 0;
}
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค_12100_2048 (Easy) (0) | 2022.05.26 |
---|---|
๋ฐฑ์ค_1062_๊ฐ๋ฅด์นจ (0) | 2022.05.12 |
๋ฐฑ์ค_14889_์คํํธ์ ๋งํฌ(๋ธ๋ฃจํธํฌ์ค-์์ด) (0) | 2022.05.10 |
๋ฐฑ์ค_14888_์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ (๋ธ๋ฃจํธํฌ์ค-์์ด) (0) | 2022.05.10 |
๋ฐฑ์ค_1339_๋จ์ด์ํ (0) | 2022.05.10 |