새소식

💻 Programming (프로그래밍)/C++ | 백준

[C++][백준] - 체스판 조각 (3004번)

  • -
https://www.acmicpc.net/problem/3004
 

3004번: 체스판 조각

상근이는 3003번에서 동혁이가 발견한 체스판을 톱으로 자르려고 한다. 상근이는 체스판을 최대 N번 자를 수 있으며, 변에 평행하게만 자를 수 있다. 또, 자를 때는 체스판의 그 변의 한쪽 끝에서

www.acmicpc.net

🔔 문제 : 

체스판을 톱으로 자르려고 합니다.

 

체스판은 최대 (1<= N <= 100)인 N번 자를 수 있으며,

 

변에 평행하게만 자를 수 있습니다.

 

이때, 최대 몇 조각을 낼 수 있는지 구하는 프로그램입니다.


🔔 Kick Point :

최대한으로 자른 다는 것은 지금 까지, 잘랐던 경로를 최대한 많이 부딪혀야 하는 문제입니다.

 

어떠한 원리가 있는지는 잘은 모르겠지만, 저는 한 번 최대한으로 자른 조각의 갯수를 나열해봤습니다.

 

1, 2, 4, 6, 9, 12, 16, 20...

 

답은 증가수열에 있다는 것을 알아냈습니다.

 

처음에는 1, 그다음에는 2, 2번 다음에는 3씩 2번 증가하는 수열임을 알 수 있습니다.


🔔 Code :

#include <iostream>
using namespace std;

int main() {
	int n, total =0;
	cin >> n;
	total = 2;
	for (int i = 2; i <= n; i++) {
		total += 1 + (i / 2);
	}
	cout << total;
}

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.