https://www.acmicpc.net/problem/2309
์์ด๋์ด
์ํ ๋์์ด์ ํค๋ฅผ ๋ชจ๋ ๋ฒกํฐ์ ๋ฃ์ ๋ค ํฉ(sum)์ ๊ตฌํ๋ค. ๊ทธ๋ฆฌ๊ณ sum๊ณผ 100์ ์ฐจ๋ฅผ ๊ตฌํด n1์ด๋ผ ํ์. ๊ทธ๋ฐ ๋ค ์ด์ค ํฌ๋ฌธ์ ์ด์ฉํด ๋ฒกํฐ์ ๊ฐ ์ค 2๊ฐ๋ฅผ ๊ณจ๋ผ ๋ํ ๊ฐ์ด n1์ผ๋ ์ด์คํฌ๋ฌธ์ ํ์ถํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฒกํฐ์์ ํด๋น ์์๋ค์ ์ง์์ค ๋ค ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ค.
์กฐ๊ธ ๋ ์์ธํ ์ค๋ช ํ์๋ฉด ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ๋ค.
i=0~7, j=i+1~8์ ๋ฐ๋ณตํ๋ ์ด์ค ํฌ๋ฌธ์ ๋ง๋ค์ด ์์ ๊ฐ์ด ํ๋์ฉ ๋ํด๊ฐ๋ฉฐ n1๊ณผ ๊ฐ์ ๋น๊ตํ๋ค. i๋ ์งํ ํ๋, j๋ ํ๋์ ๋ถ๋ถ์ด๋ค.
์์ฑํ ์ฝ๋
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main() {
int a, b, c, d, e,f,g,h,i;
cin >> a >> b >> c >> d >> e>>f>>g>>h>>i;
vector<int> v2{ a, b, c, d, e,f,g,h,i};
int sum,n1;
sum = accumulate(v2.begin(), v2.end(), 0);
n1 = sum - 100;
for (int i = 0; i < 8; i++) {
for (int j = i + 1; j < 9; j++) {
if (v2[i] + v2[j] == n1) {
v2.erase(v2.begin() + i); //์ธ๋ฑ์ค ๋ฒํธ๊ฐ i์ธ ์์๋ฅผ ์ง์ด๋ค.
v2.erase(v2.begin() + j-1); //i๋ ๋ฌด์กฐ๊ฑด j๋ณด๋ค ์์ผ๋ฏ๋ก j-1๋ฒ์งธ ์์๋ฅผ ์ง์์ผ ํ๋ค.
i = 8;//์ด์ค for๋ฌธ ํ์ถ //์ธ๋ฑ์ค ๋ฒํธ๊ฐ i์ธ ์์๋ฅผ ์ง์ฐ๊ณ ๋๋ฉด ๋ฒกํฐ์ ํฌ๊ธฐ๋ 1์ด ์ค์ด๋ ๋ค.
break;//์ด์ค for๋ฌธ ํ์ถ //์ฆ j๋ฒ์งธ ์์๋ฅผ ์ง์ฐ๋ฉด ์ฐพ์ ๊ฐ ๋ค์ ์์๋ฅผ ์ง์ฐ๊ฒ ๋๋ค.
}
}
}
sort(v2.begin(), v2.end()); //์ผ๊ณฑ ๋์์ด์ ํค๊ฐ ๋ค์ด์๋ ๋ฒกํฐ๋ฅผ ์ ๋ ฌ
for (int i = 0; i < 7; i++) { //ํ๋์ฉ ์ถ๋ ฅ
cout << v2[i] << '\n';
}
}
์ด๋ก ์ ๋ฆฌ
๋ธ๋ฃจํธ ํฌ์ค(brute force)
brute : ๋ฌด์ํ force : ํ
-> ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฝ์ฐ์ ๋ํด ์ง์ ํด๋ณด๋ ๋ฐฉ๋ฒ
#include <algorithm>
-> sortํจ์ ์ฌ์ฉ ์ํจ
vector<int> v{ 2, 1, 3 ,0 };
sort(v.begin(), v.end());
// v{0, 1, 2, 3}
#include <numeric>
->accumulateํจ์ ์ฌ์ฉ ์ํจ
vector<int> v{1, 3, 9, 2}
sum = accumulate(v2.begin(), v2.end(), 0); //accumulate(๋ฒ์ ์์, ๋ฒ์ ๋, ํฉ์ ์ด๊ธฐ๊ฐ)
//sum = 15
'์ฝ๋ฉํ ์คํธ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค1978]-์์ ์ฐพ๊ธฐ(C++) (0) | 2021.07.18 |
---|---|
[๋ฐฑ์ค2609]-์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์(C++)/์ ํด๋ฆฌ๋ ํธ์ ๋ฒ (0) | 2021.07.18 |
[๋ฐฑ์ค1012] ์ ๊ธฐ๋ ๋ฐฐ์ถ(C++) (0) | 2021.07.08 |
[๋ฐฑ์ค1260]DFS์ BFS(C++) (0) | 2021.07.03 |
[๋ฐฑ์ค10989]-์ ์ ๋ ฌํ๊ธฐ 3(C++) (0) | 2021.06.23 |
๋๊ธ