[백준] 2292번 : 벌집 [C언어]

Boknami·2022년 2월 6일
0

백준문제풀이

목록 보기
12/45

📑문제

육각형으로 이루어진 벌집에 입력한 숫자가 몇 번째 테두리에 있는가?


💡 핵심 포인트

1. 중앙에 있는 1

처음에는 중앙에 있는 1까지 같이 포함을 하고 코딩을 하려고 했는데 처음부터 중앙에 있는 1을 빼고 진행을 하는게 더 좋을 것 같아서 시작할 때 입력을 받고 1을 빼주었다.

2. 육각형의 벌집

육각형 벌집층을 메모장에 적으면서 특성을 살펴보니 방이 커질수록 (6 X 방 크기)씩 일정하게 커지는 특성이 보였다. 그래서 반복문을 돌면서 방의 변수를 ++시켜주고 (6 X 방 크기)를 이용해서 점점 숫자를 크게 하면서 원하는 숫자에 다가갈 수 있도록 코딩을 했다.

3. 반복문과 조건

반복문은 언제 끝날지를 모르는 상황이니 while을 쓰기로 처음부터 생각을 했지만 조건을 어떻게 걸어야 할 지를 고민했다. 처음에는 &&를 이용해서 ~~보다 크면서 ~~보다 작은 경우가 아닐 때까지 원하는 방의 크기를 검출을 하려고 했는데 너무 길기도 하고 제대로 진행도 되지 않아서 다시 처음부터 짰고, 단순히 while(입력 받은 수 < 커지고 있는 방 크기? )로 줄였고 안에 있는 부분도 단순히 더해주고 ++만 해주는 짧은 코드로 변경을 해서 더 효율성 있고 짧게 만들 수 있었다.

🤦‍♂️곤란했던

반복문 조건 및 전체 흐름에서 고민


🧾 전체 코드

#define _CRT_SECURE_NO_WARNINGS 
#include<stdio.h>

int main()
{
	int Room = 1;
	int hexagon = 6;
	int Now = 0;
	int N = 0;
	scanf("%d", &N);

	N = N - 1;

	while ((N > Now))
	{
		Now = Now + (Room * hexagon);
		Room++;
	}

	printf("%d\n", Room);
}

0개의 댓글