본문 바로가기
백준/C++

[백준/C++] 2922번 벌집

by 뷕뺙쀡 2020. 11. 7.

문제 : www.acmicpc.net/problem/2922

 

<풀이>

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	long long input;
	cin >> input;
	int N = ((-3 + (sqrt(12 * input - 3))) / (6));
	if (input == 6 * (((N * (N + 1)) / 2)) + 1) { printf("%d\n", N + 1); }
	else { printf("%d\n", N + 2); }

	return 0;
}

<어떻게 풀었는가>

이거 백퍼 이렇게 푸는거 아닐텐데......ㅋㅋㅋㅋㅋㅋㅋ
이리저리 복잡하게 설명해놨지만 결국 근의 공식을 이용하여 n의 값을 찾고
n과 n의 합을 이용하여 입력값의 위치를 찾는 문제였다. 

댓글