๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/BOJ

[C++/๋ฐฑ์ค€] 2502 : ๋–ก ๋จน๋Š” ํ˜ธ๋ž‘์ด

by xxilliant 2022. 8. 1.
728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ ์‚ฐ์„ ๋„˜์–ด๊ฐ€๋Š” ๋–ก ์žฅ์‚ฌ ํ• ๋จธ๋‹ˆ๋Š” ํ˜ธ๋ž‘์ด์—๊ฒŒ ๋–ก์„ ์ฃผ์–ด์•ผ ์‚ฐ์„ ๋„˜์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์š•์‹ฌ ๋งŽ์€ ํ˜ธ๋ž‘์ด๋Š” ์–ด์ œ ๋ฐ›์€ ๋–ก์˜ ๊ฐœ์ˆ˜์™€ ๊ทธ์ €๊ป˜ ๋ฐ›์€ ๋–ก์˜ ๊ฐœ์ˆ˜๋ฅผ ๋”ํ•œ ๋งŒํผ์˜ ๋–ก์„ ๋ฐ›์•„์•ผ๋งŒ ํ• ๋จธ๋‹ˆ๋ฅผ ๋ฌด์‚ฌํžˆ ๋ณด๋‚ด ์ค€๋‹ค๊ณ  ํ•œ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด ์ฒซ์งธ ๋‚ ์— ๋–ก์„ 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;
}
728x90
๋ฐ˜์‘ํ˜•