출처 : 반크_세계유산 경복궁
문제]
위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.
입력
첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다.
출력
입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다.
예제 입력 1
13
예제 출력 1
3
출처 : 백준_2292번
참고풀이]
#include <stdio.h>
int main()
{
int N;//방번호를 입력받는 변수.
int count;//방개수를 구하는 변수.
int cnt;//계속 실행여부 체크하는 변수
scanf("%d",&N);
//벌집 육각형을 둘레로 N이 몇번째 방에 있는 지 구한다.
if(N>=1 && N<=1000000000)
{
count=cnt=1;
if(N==1);
else
{
while(1)
{
cnt+=6*count;
count++;
if(cnt>=N) break;
}
}
//결과출력
printf("%d",count);
}
return 0;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 겨울
'프로그램 > C언어 1000제' 카테고리의 다른 글
C언어 178제] 버블정렬 (1) | 2024.10.31 |
---|---|
C언어 177제] 2011/2012 COCI 크로아티아 정보학 공개 경쟁 #6 1번 블랙잭 (1) | 2024.09.25 |
C언어 175제]2005년 ICPC 서울지역예선 B번 분해합 (1) | 2024.09.19 |
C언어 174제] solved.ac class2 소수 찾기 (0) | 2024.09.19 |
C언어 173제] solved.ac class2 웰컴 키트 (0) | 2024.09.18 |
댓글