백준 알고리즘 | 2292번 - 벌집

유하연·2021년 6월 23일
0

BOJ

목록 보기
1/9

백준 알고리즘 2292번 : 벌집 JAVA


백준 알고리즘 2292번 : 벌집 문제 바로가기

해결방법

  1. 중앙의 방 1을 둘러싸고 있는 방들 중, 가장 큰 수대로 나열하면
    1 7 19 37 61
    이 수들의 규칙은
    1 (+6) 7 (+12) 19 (+18) 37 (+24) 61
    6의 배수로 증가한다.

  2. i는 출력값으로 초기값을 1로 설정하고, i가 증가하면서 증가폭을 설정해준다.
    예를 들어 13번방의 값을 구한다면 i가 증가하면서 while을 돌다가, 13보다 결과값이 커진다면 while을 빠져나온다.
    이때 i가 원하는 출력값이 된다.

  3. 1을 넣으면 결과값이 2가 나오기 때문에 1번방일때 출력값이 1이라는 것은 따로 예외처리한다.

소스코드

import java.io.*;

public class Main{
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int num = Integer.parseInt(br.readLine());
		int result = 1;
		int i = 1;
		if (num==1) {
			System.out.println("1");
		}
		else {
			while(true) {
				result = result+(6*i);
				i++;
				if (result>=num) break;
			}
			System.out.println(i);
		}			
	}
}
profile
https://yuhalog.tistory.com/

0개의 댓글

관련 채용 정보