Computer Science/Algorithm

[Algorithm/C] BOJ.2292 벌집

재오니소스 2017. 11. 20. 20:09



위의 그림 처럼 주소가 매겨져 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N 번 방까지 최소 개수의 방을 지나서 갈 때 몇개의 방을 구하는지 구해라.


접근 방법

1. 몇 번방을 지나 가는지 알 필요 없다.

2. 입력 1은 자명해 1을 가진다.

3. 껍질(?)로 생각한다. 즉, 2~7 까지는 두번째 껍질이므로 답은 2


#include <stdio.h>


int main(int argc, char *argv[]){

int input;

int i;

int sum=0;


scanf("%d",&input);


if(input==1) printf("1");

else{


for(i=1; ;i++){

sum = sum + 6 * i;

if(input-1<=sum) { 

printf("%d",i+1);

break;

}

}

}

return 0;

}



문제, 사진출처 - https://www.acmicpc.net/problem/2292