BOJ_11058 : 크리보드

less than 1 minute read

문제

크리보드는 kriii가 만든 신기한 키보드이다. 크리보드에는 버튼이 4개만 있으며, 하는 역할은 다음과 같다.

화면에 A를 출력한다. Ctrl-A: 화면을 전체 선택한다 Ctrl-C: 전체 선택한 내용을 버퍼에 복사한다 Ctrl-V: 버퍼가 비어있지 않은 경우에는 화면에 출력된 문자열의 바로 뒤에 버퍼의 내용을 붙여넣는다. 크리보드의 버튼을 총 N번 눌러서 화면에 출력된 A개수를 최대로하는 프로그램을 작성하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

크리보드의 버튼을 총 N번 눌러서 화면에 출력할 수 있는 A 개수의 최댓값을 출력한다.

C++ 코드

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;
long long d[105];

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		d[i] = d[i - 1] + 1;
		for (int j = 1; j + 3 <= i; j++) {
			d[i] = max( d[i], d[i - (j + 2)] * (j + 1));
		}
	}

	cout << d[n] << '\n';


	return 0;

}




Updated:

Leave a comment