본문 바로가기
백준 풀이

[백준 풀이_Java] 2292 벌집

by happyhelen 2021. 10. 29.

 

 

처음 생각

 

벌집이 한바퀴 도는 칸수를 시작-끝 으로 표현하고 그 범위 안에 들어오면 지나온 방 수를 세는 식으로 구상했다

 

그런데 굳이 시작-끝 으로 표현하지 않고 그냥 끝 수만 있어도 범위 안에 들어오는지 여부를 확인할 수 있어서

 

또 다른 식으로 풀어봤다

 

 

 

내가 푼 방법

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int start = 0; // 범위 시작 수
		int end = 1; // 범위 끝 수
		int room =1; // 지나는 방의 수
		int i=1; // (6*i)에서 쓸 수
		
		while(true) {
			if(start <= N && N <= end) { // 범위에 들어오면
				System.out.println(room);
				break;
			}
			else { // 범위에 못들어오면
				start = end+1;
				end = end + (6*i);
				room++;
				i++;
			}
		}
	}
}

 

 

 

다른 풀이

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int end = 1; // 범위 시작 수 없이 끝 수만 사용
		int room =1;
		int i=1;
		
		while(N>end) { // N이 true범위(end 범위 내)를 벗어날때까지
			end = end + (6*i);
			i++;
			room++;
		}
		System.out.println(room);
	}
}