위 스크린샷은 문제풀면서 필기한 것이다 하나하나씩 살펴보자.
특정 숫자를 넣었을때 그 숫자까지 가는길을 구하라고 한다. 이말인 즉슨 그 숫자가 몇변째 육각형 안에 들어있나 그것을 구하는게 아닌가 라고 생각한다.
밑의 구현 코드를 보자.
파란색글씨로 쓰여진 카운트는 몇번째 육각형인지 나타낸다. ( 1은 잴 첫번째 )
초록색으로 쓰인 글자는 특정 육각형 내의 숫자 범위를 뜻한다. 보다싶이 6씩 늘어난다. 그러므로 코드 구현은
19를 입력했을시 몇번째 육각형에 있는지 알려준다. 위에서 써놓은 풀이를 다시보자
8~19까지 는 count=3즉 번째 육각형이다 코드로 잘 구현된걸 볼 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class HONEY
{
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
int min = 2, max = 7;
int count =2;
while(true)
{
System.out.println("count: "+count);
System.out.println("min: "+min);
System.out.println("max: "+max);
System.out.println();
if(num ==1 )
{
count = 1;
break;
}
if(num>=min && num<=max)
break;
min = max +1;
max = min+(6*count)-1;
count++;
}
System.out.println(count);
}
}