- ros2
- ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด
- raspberry pi
- dqn
- ์๋ฃ๊ตฌ์กฐ
- JetsonNano
- ROS2 Dashing
- BOJ
- ubuntu
- Android Studio
- ubuntu18.04
- libobstacles
- ์๊ฐ ๋ณต์ก๋
- VirtualBox
- raspberrypi
- TURTLEBOT3
- ์๊ฐ๋ณต์ก๋
- ์ฐ๋ถํฌ ๋ฆฌ๋ ์ค
- linux
- ์ ๋ฎฌ๋ ์ดํฐ
- ์๋๋ก์ด๋์คํ๋์ค
- c++
- ๋ผ์ฆ๋ฒ ๋ฆฌํ์ด4
- Dashing
- Gazebo
- ROS
- ๋ฐฑ์ค
- ๋ธ๋ฃจํธํฌ์ค
- Ubuntu 18.04
- ์๊ณ ๋ฆฌ์ฆ
- Today
- Total
์์ ํ
[C++][๋ฐฑ์ค|BOJ][์๊ฐ๋ณต์ก๋] 24313๋ฒ - ์๊ณ ๋ฆฌ์ฆ ์์ (์ ๊ทผ์ ํ๊ธฐ 1) ๋ณธ๋ฌธ
[C++][๋ฐฑ์ค|BOJ][์๊ฐ๋ณต์ก๋] 24313๋ฒ - ์๊ณ ๋ฆฌ์ฆ ์์ (์ ๊ทผ์ ํ๊ธฐ 1)
re.aom 2024. 2. 7. 02:19๋ฌธ์
์ค๋๋ ์์ค์ด๋ ์ ๊ทผ์ ํ๊ธฐ ์์ ์กฐ๊ต๋ฅผ ํ๊ณ ์๋ค. ์๋น ๊ฐ ์์ ํ ๋ด์ฉ์ ํ์๋ค์ด ์ ์ดํดํ๋์ง ๋ฌธ์ ๋ฅผ ํตํด์ ํ์ธํด๋ณด์.
์๊ณ ๋ฆฌ์ฆ์ ์์ ์๊ฐ์ ๋ํ๋ด๋ O-ํ๊ธฐ๋ฒ(๋น -์ค)์ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ์.
O(g(n)) = {f(n) | ๋ชจ๋ n โฅ n0์ ๋ํ์ฌ f(n) โค c ร g(n)์ธ ์์ ์์ c์ n0๊ฐ ์กด์ฌํ๋ค}
์ด ์ ์๋ ์ค์ O-ํ๊ธฐ๋ฒ(https://en.wikipedia.org/wiki/Big_O_notation)๊ณผ ๋ค๋ฅผ ์ ์๋ค.
ํจ์ f(n) = a1n + a0, ์์ ์ ์ c, n0๊ฐ ์ฃผ์ด์ง ๊ฒฝ์ฐ O(n) ์ ์๋ฅผ ๋ง์กฑํ๋์ง ์์๋ณด์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํจ์ f(n)์ ๋ํ๋ด๋ ์ ์ a1, a0๊ฐ ์ฃผ์ด์ง๋ค. (0 โค |ai| โค 100)
๋ค์ ์ค์ ์์ ์ ์ c๊ฐ ์ฃผ์ด์ง๋ค. (1 โค c โค 100)
๋ค์ ์ค์ ์์ ์ ์ n0๊ฐ ์ฃผ์ด์ง๋ค. (1 โค n0 โค 100)
์ถ๋ ฅ
f(n), c, n0๊ฐ O(n) ์ ์๋ฅผ ๋ง์กฑํ๋ฉด 1, ์๋๋ฉด 0์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
7 7 8 1
์์ ์ถ๋ ฅ 1
0
f(n) = 7n + 7, g(n) = n, c = 8, n0 = 1์ด๋ค. f(1) = 14, c ร g(1) = 8์ด๋ฏ๋ก O(n) ์ ์๋ฅผ ๋ง์กฑํ์ง ๋ชปํ๋ค.
์์ ์ ๋ ฅ 2
7 7 8 10
์์ ์ถ๋ ฅ 2
1
f(n) = 7n + 7, g(n) = n, c = 8, n0 = 10์ด๋ค. ๋ชจ๋ n โฅ 10์ ๋ํ์ฌ 7n + 7 โค 8n ์ด๋ฏ๋ก O(n) ์ ์๋ฅผ ๋ง์กฑํ๋ค.
O(g(n)) = {f(n) | ๋ชจ๋ n ≥ n0์ ๋ํ์ฌ f(n) ≤ c × g(n)์ธ ์์ ์์ c์ n0๊ฐ ์กด์ฌํ๋ค}
f(n) ≤ c*g(n) ์ ๋ง์กฑํ๋ฉด ๋๋ค.
ํด๋น ์์ ์ ๋ฆฌํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋ชจ์์ด ๋๋ค.
์ ๋ถ๋ฑ์์ด ํญ์ ์ฐธ์ด ๋๊ธฐ ์ํด์๋ a1-c๊ฐ 0์ด๊ฑฐ๋ ์์์ด์ด์ผ ํ๋ค.
์ด๋ a1์ด c๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์์ผ๋ก ํ์ํ ์ ์๋ค.
#include <iostream>
int main() {
int a0, a1, c, n;
std::cin >> a1 >> a0;
std::cin >> c;
std::cin >> n;
if (a1 * n + a0 <= c * n && a1 <= c) {
std::cout << 1;
}
else std::cout <<0;
}
๋ฒ์ ์กฐ๊ฑด์ ์ถ๊ฐํ์ง ์๊ณ , a1 * n + a0 <= c๋ง ์์ฑํ ์ ์ค๋ต์ผ๋ก ์ฒ๋ฆฌ๋๋ค.