응애개발자
article thumbnail
728x90

문제

https://www.acmicpc.net/problem/2292

 

접근 방법

1. 벌집은 N 까지 갈때 최단 거리를 구하는 문제입니다.

2. 따라서 1, (2~7), (8~19), (20~37) 의 최단거리는 각각 1, 2, 3, 4로 계차수열을 이룹니다.

3. 증가하는 값이 6, 12, 18 로 6씩 증가하는 코드를 작성해주면 됩니다.

 

코드

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    private static StringBuilder sb;
    private static BufferedReader br;
    private static StringTokenizer st;
    private static long N;

    //입력
    public static void input() throws Exception {
        br = new BufferedReader(new InputStreamReader(System.in));
        sb = new StringBuilder();

        N = Long.parseLong(br.readLine());
    }

    //실행
    public static void process() {
        long depth = 1;
        long x = 1;


        if(N==1){
            System.out.println(1);
            return;
        }

        while (true){
            if(N<=x){
                System.out.println(depth);
                break;
            }
          
            x =x+(6*depth);
            depth++;
        }
    }


    public static void main(String[] args) throws Exception {
        input();
        process();
    }
}
profile

응애개발자

@Eungae-D

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!