๋ฌธ์
ํ๋ฃจ์ ํ ๋ฒ ์ฐ์ ๋์ด๊ฐ๋ ๋ก ์ฅ์ฌ ํ ๋จธ๋๋ ํธ๋์ด์๊ฒ ๋ก์ ์ฃผ์ด์ผ ์ฐ์ ๋์ด๊ฐ ์ ์๋๋ฐ, ์์ฌ ๋ง์ ํธ๋์ด๋ ์ด์ ๋ฐ์ ๋ก์ ๊ฐ์์ ๊ทธ์ ๊ป ๋ฐ์ ๋ก์ ๊ฐ์๋ฅผ ๋ํ ๋งํผ์ ๋ก์ ๋ฐ์์ผ๋ง ํ ๋จธ๋๋ฅผ ๋ฌด์ฌํ ๋ณด๋ด ์ค๋ค๊ณ ํ๋ค.
์๋ฅผ ๋ค์ด ์ฒซ์งธ ๋ ์ ๋ก์ 1๊ฐ ์ฃผ์๊ณ , ๋์งธ ๋ ์๋ ๋ก์ 2๊ฐ ์ฃผ์๋ค๋ฉด ์ ์งธ ๋ ์๋ 1+2=3๊ฐ, ๋ท์งธ ๋ ์๋ 2+3=5๊ฐ, ๋ค์ฏ์งธ ๋ ์๋ 3+5=8๊ฐ, ์ฌ์ฏ์งธ ๋ ์๋ 5+8=13๊ฐ๋ฅผ ์ฃผ์ด์ผ๋ง ๋ฌด์ฌํ ์ฐ์ ๋์ด๊ฐ ์ ์๋ค.
์ฐ๋ฆฌ๋ ์ฐ์ ๋ฌด์ฌํ ๋์ด์จ ํ ๋จธ๋์๊ฒ ์ค๋ ํธ๋์ด์๊ฒ ๋ช ๊ฐ์ ๋ก์ ์ฃผ์๋์ง, ๊ทธ๋ฆฌ๊ณ ์ค๋์ด ํธ๋์ด๋ฅผ ๋ง๋ ๋ก์ ์ค์ง ๋ฉฐ์น ์ด ๋์๋์ง๋ฅผ ์์๋ด์๋ค. ํ ๋จธ๋๊ฐ ํธ๋์ด๋ฅผ ๋ง๋์ ๋ฌด์ฌํ ๋์ด์จ D์งธ ๋ ์ ์ค ๋ก์ ๊ฐ์๊ฐ K๊ฐ์์ ์ ๋, ์ฌ๋ฌ๋ถ์ ํ ๋จธ๋๊ฐ ํธ๋์ด๋ฅผ ์ฒ์ ๋ง๋ ๋ ์ ์ค ๋ก์ ๊ฐ์ A, ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ค์ ๋ ์ ํธ๋์ด์๊ฒ ์ค ๋ก์ ๊ฐ์ B๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ด ๋ฌธ์ ์์๋ ํญ์ 1 โค A โค B ์ด๋ค.
์๋ฅผ ๋ค์ด ์ฌ์ฏ ๋ฒ์งธ ๋ ์ ์ฐ์ ๋ฌด์ฌํ ๋์ด์จ ํ ๋จธ๋๊ฐ ํธ๋์ด์๊ฒ ์ค ๋ก์ด ๋ชจ๋ 41๊ฐ๋ผ๋ฉด, ํธ๋์ด๋ฅผ ๋ง๋ ์ฒซ ๋ ์ ์ค ๋ก์ ์๋ 2๊ฐ, ๋์งธ ๋ ์ ์ค ๋ก์ ์๋ 7๊ฐ์ด๋ค. ์ฆ ์ ์งธ ๋ ์๋ 9๊ฐ, ๋ท์งธ ๋ ์๋ 16๊ฐ, ๋ค์ฏ์งธ ๋ ์๋ 25๊ฐ, ์ฌ์ฏ์งธ ๋ ์๋ 41๊ฐ์ด๋ค. ๋ฐ๋ผ์ A=2, B=7 ์ด ๋๋ค. ๋จ ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ต์ด ๋๋ A, B๊ฐ ํ๋ ์ด์์ผ ๋๋ ์๋๋ฐ ์ด ๊ฒฝ์ฐ์๋ ๊ทธ ์ค ํ๋๋ง ๊ตฌํด์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์๋ ํ ๋จธ๋๊ฐ ๋์ด์จ ๋ D (3 โค D โค 30)์ ๊ทธ ๋ ํธ๋์ด์๊ฒ ์ค ๋ก์ ๊ฐ์ K (10 โค K โค 100,000)๊ฐ ํ๋์ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์ค์ ์ฒซ ๋ ์ ์ค ๋ก์ ๊ฐ์ A๋ฅผ ์ถ๋ ฅํ๊ณ ๊ทธ ๋ค์ ๋์งธ ์ค์๋ ๋์งธ ๋ ์ ์ค ๋ก์ ๊ฐ์ B๋ฅผ ์ถ๋ ฅํ๋ค. ์ด ๋ฌธ์ ์์ ์ฃผ์ด์ง D, K์ ๋ํด์๋ ํญ์ ์ ์ A, B (1โค A โค B)๊ฐ ์กด์ฌํ๋ค.
์ค๋ฒ 1ํฐ์ด ๋ฌธ์ ์ด๋ค.
์๊ณ ๋ฆฌ์ฆ์ ๋ ์ฌ๋ฆฌ๋ ๋ฐ์ ์๊ฐ์ด ๊ฝค ๊ฑธ๋ ธ๋ ๊ฒ ๊ฐ๋ค.
for๋ฌธ ๋ ๊ฐ๋ฅผ ๋๋ ค์ ์๋ฅผ ํ๋ํ๋ ๋์ ํด์ ๋ํด๋ณด๋ ๋ฐฉ๋ฒ์ผ๋ก ํด๊ฒฐํ์๋ค.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); // ์
์ถ๋ ฅ์๊ฐ ๋จ์ถ(์๋ต๊ฐ๋ฅ)
int d; int k;
cin >> d >> k;
int i, j, day;
int day1, day2; int ricecake = 0;
bool flag = false;
for (i = 1; i <= k / 2; ++i) { // ์ฒซ์งธ๋ ์ค ๋ก์ ๊ฐ์
for (j = i; i + j <= k; ++j) { // ๋์งธ๋ ์ค ๋ก์ ๊ฐ์
day1 = i;
day2 = j;
for (day = 3; day <= d; ++day) {
ricecake = day1 + day2; // ๊ฐฏ์ ๋์ ํด๋ณด๊ธฐ
day1 = day2;
day2 = ricecake;
}
if (ricecake == k) { // ๋์ ๊ฐ์ด k์ ๊ฐ์ผ๋ฉด break
cout << i << "\n" << j;
flag = true;
break;
}
}
if (flag) break;
}
return 0;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/๋ฐฑ์ค] 1026 : ๋ณด๋ฌผ (1) | 2023.01.16 |
---|---|
[C++/๋ฐฑ์ค] 25178 : ๋๋ผ๋ฌด๋ฆฌ ํด์ง (0) | 2022.08.09 |
[C++/๋ฐฑ์ค] 11650, 11651 : ์ขํ ์ ๋ ฌํ๊ธฐ 1, 2 (0) | 2022.08.01 |
[C++/๋ฐฑ์ค] 10989 : ์ ์ ๋ ฌํ๊ธฐ 3 (0) | 2022.07.25 |
[C++/๋ฐฑ์ค] 2920 : ์๊ณ (0) | 2022.07.22 |