- VirtualBox
- ์๋๋ก์ด๋์คํ๋์ค
- raspberry pi
- ์๋ฃ๊ตฌ์กฐ
- raspberrypi
- c++
- Gazebo
- ubuntu
- dqn
- libobstacles
- ์ฐ๋ถํฌ ๋ฆฌ๋ ์ค
- BOJ
- linux
- ubuntu18.04
- ์ ๋ฎฌ๋ ์ดํฐ
- Ubuntu 18.04
- ์๊ฐ ๋ณต์ก๋
- ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด4
- ๋ฐฑ์ค
- TURTLEBOT3
- ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด
- JetsonNano
- ์๊ฐ๋ณต์ก๋
- ๋ธ๋ฃจํธํฌ์ค
- ์๊ณ ๋ฆฌ์ฆ
- Android Studio
- ROS
- Dashing
- ros2
- ROS2 Dashing
- Today
- Total
์์ ํ
[C++][๋ฐฑ์ค|BOJ][๋ธ๋ฃจํธํฌ์ค] 2798๋ฒ - ๋ธ๋์ญ ๋ณธ๋ฌธ
๋ฌธ์
์นด์ง๋ ธ์์ ์ ์ผ ์ธ๊ธฐ ์๋ ๊ฒ์ ๋ธ๋์ญ์ ๊ท์น์ ์๋นํ ์ฝ๋ค. ์นด๋์ ํฉ์ด 21์ ๋์ง ์๋ ํ๋ ๋ด์์, ์นด๋์ ํฉ์ ์ต๋ํ ํฌ๊ฒ ๋ง๋๋ ๊ฒ์์ด๋ค. ๋ธ๋์ญ์ ์นด์ง๋ ธ๋ง๋ค ๋ค์ํ ๊ท์ ์ด ์๋ค.
ํ๊ตญ ์ต๊ณ ์ ๋ธ๋์ญ ๊ณ ์ ๊น์ ์ธ์ ์๋ก์ด ๋ธ๋์ญ ๊ท์น์ ๋ง๋ค์ด ์๊ทผ, ์ฐฝ์์ด์ ๊ฒ์ํ๋ ค๊ณ ํ๋ค.
๊น์ ์ธ ๋ฒ์ ์ ๋ธ๋์ญ์์ ๊ฐ ์นด๋์๋ ์์ ์ ์๊ฐ ์ฐ์ฌ ์๋ค. ๊ทธ ๋ค์, ๋๋ฌ๋ N์ฅ์ ์นด๋๋ฅผ ๋ชจ๋ ์ซ์๊ฐ ๋ณด์ด๋๋ก ๋ฐ๋ฅ์ ๋๋๋ค. ๊ทธ๋ฐ ํ์ ๋๋ฌ๋ ์ซ์ M์ ํฌ๊ฒ ์ธ์น๋ค.
์ด์ ํ๋ ์ด์ด๋ ์ ํ๋ ์๊ฐ ์์ N์ฅ์ ์นด๋ ์ค์์ 3์ฅ์ ์นด๋๋ฅผ ๊ณจ๋ผ์ผ ํ๋ค. ๋ธ๋์ญ ๋ณํ ๊ฒ์์ด๊ธฐ ๋๋ฌธ์, ํ๋ ์ด์ด๊ฐ ๊ณ ๋ฅธ ์นด๋์ ํฉ์ M์ ๋์ง ์์ผ๋ฉด์ M๊ณผ ์ต๋ํ ๊ฐ๊น๊ฒ ๋ง๋ค์ด์ผ ํ๋ค.
N์ฅ์ ์นด๋์ ์จ์ ธ ์๋ ์ซ์๊ฐ ์ฃผ์ด์ก์ ๋, M์ ๋์ง ์์ผ๋ฉด์ M์ ์ต๋ํ ๊ฐ๊น์ด ์นด๋ 3์ฅ์ ํฉ์ ๊ตฌํด ์ถ๋ ฅํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์นด๋์ ๊ฐ์ N(3 โค N โค 100)๊ณผ M(10 โค M โค 300,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค์๋ ์นด๋์ ์ฐ์ฌ ์๋ ์๊ฐ ์ฃผ์ด์ง๋ฉฐ, ์ด ๊ฐ์ 100,000์ ๋์ง ์๋ ์์ ์ ์์ด๋ค.
ํฉ์ด M์ ๋์ง ์๋ ์นด๋ 3์ฅ์ ์ฐพ์ ์ ์๋ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ M์ ๋์ง ์์ผ๋ฉด์ M์ ์ต๋ํ ๊ฐ๊น์ด ์นด๋ 3์ฅ์ ํฉ์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
5 21 5 6 7 8 9
์์ ์ถ๋ ฅ 1
21
์์ ์ ๋ ฅ 2
10 500 93 181 245 214 315 36 185 138 216 295
์์ ์ถ๋ ฅ 2
497
ํด๋น ๋ฌธ์ ๋ 24267๋ฒ ๋ฌธ์ ์ ์ ์ฌํ๋ค.
์นด๋ 3์ฅ์ ์ค๋ณต์์ด ๋ฝ์ผ๋ฉด์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ํํ๊ธฐ ๋๋ฌธ์ ์๊ฐ ๋ณต์ก๋๋ O(n^3)์ด๋ฉฐ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ๋ค.
#include <iostream>
#include <vector>
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(NULL);
std::cout.tie(NULL);
int n, m;
std::cin >> n >> m;
std::vector<int> arr(n);
for (int i = 0; i < n; i++) {
std::cin >> arr[i];
}
int result = 0;
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 = arr[i] + arr[j] + arr[k];
if (sum <= m && sum > result) {
result = sum;
}
}
}
}
std::cout << result;
}