[백준] 2292-벌집(JAVA)

GyeongEun Kim·2021년 6월 1일
0


문제 자체는 이해하기 쉬웠고, 규칙도 찾았는데 이걸 코드로 짜는 과정에서 삽질을 엄청나게 했다. 쓸데없이 어렵게 생각한 것 같다.. 재귀함수를 쓰려했다
벌집은 먼저 1을 기준으로 겉에 껍질이 생기는 것처럼 커진다. 이걸 벌집 층(?)이라고 하면,

1층은 1
2층은 2,3,4,5,6,7
3층은 8,9,10,11,12,13,14,15,16,17,18,19
...

식으로 이어진다.
이때, 각 층의 벌집 방 개수는 1층에 1개, 2층에 6개, 3층에 12개, 4층에 18개로
1층을 제외한 층에서는 이전 층의 벌집개수+6 만큼 방이 생긴다.

import java.io.*;

public class No2292_벌집 {

    public static void main(String[] args) throws  IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    int x = Integer.parseInt(br.readLine());
    int cnt=1; //몇겹을 지나야 도착하는지 count
    int sum=1; //각 층의 최대 숫자

    if (x==1)
        System.out.println("1");
        //1이면 바로 1출력
    else {
        while (sum<x) { 
           sum+=6*cnt; //현재 층의 최대 숫자 
           	//이전층의 최대숫자 + 현재층의 벌집 개수
           cnt++; 
           }
        System.out.println(cnt);
        }

        }
    }
profile
내가 보려고 쓰는 글

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN