728x90
동적계획법으로 풀었다.
2-tuple인 pair를 만들어서 첫 번째 원소에는 1로부터 i만큼 떨어져있는 벌집들 중 가장 작은 번호를 가진 벌집의 번호를, 두 번째 원소에는 1로부터 i만큼 떨어져 있는 벌집들 중 가장 큰 번호를 가진 벌집의 번호를 저장해서 벡터에 저장했다.
#include <iostream>
#include <tuple>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<pair<int, int>> room;
room.push_back(make_pair(1, 1));
room.push_back(make_pair(2, 7));
int i = 2;
while (room[i - 1].second < n) {
room.push_back(make_pair(room[i - 1].second + 1, room[i - 1].second + 6 * i));
i++;
}
if (n == 1) cout << 1;
else cout << i;
return 0;
}
728x90
'알고리즘 문제' 카테고리의 다른 글
[백준] 11726번 2×n 타일링 (0) | 2020.02.01 |
---|---|
[백준] 10844번 쉬운 계단 수 (0) | 2020.01.31 |
[백준] 2193번 이친수 (0) | 2020.01.31 |
[백준] 1193번 분수찾기 (0) | 2020.01.31 |
[백준] 2751번 수 정렬하기 2 (0) | 2020.01.31 |