DEV ℧ Developer Diary

[Bronze2] No.02292 벌집

벌집

No.02292 벌집

문제

벌집 문제

위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다.

풀이

해당 문제는 규칙을 찾는 문제입니다. 그림이 있어서 어려워보이지만 규칙을 찾으면 어렵지 않게 풀 수 있습니다.

벌집 문제2

그림과 같이 육각형의 형태로 벌집을 묶다보면 해당 수열의 규칙을 찾을 수있다.

  • 1번째는 1의 범위를 가지고 있고, 벌집의 갯수는 1개, 총 벌집의 갯수는 1개
  • 2번째는 2 ~ 7 까지 범위를 가지고 있고, 벌집의 갯수는 6개, 총 벌집의 갯수는 7개
  • 3번째는 8 ~ 19 까지 범위를 가지고 있고, 벌집의 갯수는 12개, 총 벌집의 갯수는 19개
  • 4번째는 20 ~ 37 까지 범위를 가지고 있고, 벌집의 갯수는 18개, 총 벌집의 갯수는 37개
  • 5번째는 38 ~ 61 까지 범위를 가지고 있고, 벌집의 갯수는 24개 , 총 벌집의 갯수는 61개

이렇게 정리해보면, 벌집의 갯수가 규칙적으로 늘어나고 있음을 알 수 있다.

벌집 문제3

해당 규칙을 자바로 구현해보자

풀이 소스