๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜

[Java] BOJ 2292 ๋ฒŒ์ง‘

by ๐ŸŠ๊ทค๐ŸŠ 2024. 7. 10.

๋ฌธ์ œ 

๋ฌธ์ œ ๋งํฌ https://www.acmicpc.net/problem/2292

  • ์œก๊ฐํ˜•์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฒŒ์ง‘์ด ์žˆ์œผ๋ฉฐ ์ค‘์•™์˜ ๋ฐฉ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ด์›ƒํ•˜๋Š” ๋ฐฉ์— ๋Œ์•„๊ฐ€๋ฉด์„œ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ๋ฒˆํ˜ธ๋ฅผ ์ฃผ์†Œ๋กœ ๋งค๊ธธ ์ˆ˜ ์žˆ๋‹ค.
  • ์ˆซ์ž N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ฒŒ์ง‘์˜ ์ค‘์•™ 1์—์„œ N๋ฒˆ ๋ฐฉ๊นŒ์ง€ ์ตœ์†Œ ๊ฐœ์ˆ˜์˜ ๋ฐฉ์„ ์ง€๋‚˜์„œ ๊ฐˆ ๋•Œ ๋ช‡ ๊ฐœ์˜ ๋ฐฉ์„ ์ง€๋‚˜๊ฐ€๋Š”์ง€(์‹œ์ž‘๊ณผ ๋์„ ํฌํ•จํ•˜์—ฌ)๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. 
  • ์˜ˆ๋ฅผ ๋“ค๋ฉด, 13๊นŒ์ง€๋Š” 3๊ฐœ, 58๊นŒ์ง€๋Š” 5๊ฐœ๋ฅผ ์ง€๋‚œ๋‹ค.
  • ์ฒซ์งธ ์ค„์— N(1 ≤ N ≤ 1,000,000,000)์ด ์ฃผ์–ด์ง„๋‹ค.

์•„์ด๋””์–ด

  • ํ•œ ๋‘˜๋ ˆ๋‹น ์œก๊ฐํ˜•์ด 6์˜ ๋ฐฐ์ˆ˜๋กœ ๋Š˜์–ด๋‚˜๋ฏ€๋กœ ์ด๋ฅผ ํ™œ์šฉํ•ด์„œ ํ•œ ๋‘˜๋ ˆ์˜ ์ตœ๋Œ€ ๋ฐฉ ๋ฒˆํ˜ธ๋ฅผ ๊ณ„์‚ฐํ•ด, ๊ทธ ๋ฐฉ๋ฒˆํ˜ธ๋ณด๋‹ค ์ž‘์œผ๋ฉด .while๋ฌธ์„ ๊ทธ๋งŒ๋Œ๋ฆฌ๊ณ  ํฌ๋ฉด ์นด์šดํŠธ + 1์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™์•˜๋‹ค. 

๊ฒช์€ ์‹œํ–‰์ฐฉ์˜ค

  • ๋ฌธ์ œ์— ๊ทธ๋ฆผ์ด ์žˆ์—ˆ๋Š”๋ฐ ์ฒ˜์Œ์— ์ž˜๋ชป๋ด์„œ ํ—ท๊ฐˆ๋ ธ์—ˆ๋‹ค...ใ…Ž...

๋ถ€๋„๋Ÿฝ๋‹ค...ใ…Ž

์ฝ”๋“œ

import java.io.*;
import java.util.*;

public class BOJ2292 {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());

        // ์ž…๋ ฅ๊ฐ’์ด 1์ผ๋•Œ, ์ž๊ธฐ ๋ฐฉ์ด๋ฏ€๋กœ ์ง€๋‚˜๊ฐ€๋Š” ๋ฐฉ 1๊ฐœ
        if(N == 1){
            System.out.println(1);
        }
        else{
            // ๋ฐฉ ๋ฒˆํ˜ธ
            int r = 1;
            // ๋ช‡๊ฐœ์˜ ๋ฐฉ ์ง€๋‚˜๊ฐ€๋Š”์ง€ ์นด์šดํŠธ
            int cnt = 1;
            // ๋ฐฉ์˜ ๊ฐœ์ˆ˜๊ฐ€ 6์˜ ๋ฐฐ์ˆ˜๋งŒํผ ๋Š˜์–ด๋‚˜๋ฏ€๋กœ ๋ฐฐ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•  ๋ณ€์ˆ˜
            int i = 1;

            while(true){
                // ํ•œ ๋‘˜๋ ˆ์— ์žˆ๋Š” ๋ฐฉ์˜ ์ตœ๋Œ€ ๋ฒˆํ˜ธ ๊ณ„์‚ฐ
                // ๊ทธ์ „ ์ตœ๋Œ€ ๋ฒˆํ˜ธ + 6์˜ ๋ฐฐ์ˆ˜ ๋งŒํผ ๋Š˜์–ด๋‚˜๋Š” ๋ฐฉ์ด๋ฏ€๋กœ 6 * i๋งŒํผ ๋”ํ•ด์คŒ
                r = r + 6 * i;
                // ๋ฐฐ์ˆ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ + 1
                i = i + 1;
                // ํ•œ ๋ฐ”ํ€ด๋ฅผ ๋Œ๋•Œ๋งˆ๋‹ค ์ง€๋‚˜๊ฐ€๋Š” ๋ฐฉ์ด ํ•œ๊ฐœ ๋Š˜์–ด๋‚˜๋ฏ€๋กœ + 1
                cnt = cnt + 1;

                // ๋งŒ์•ฝ ๊ฐ€์•ผ๋˜๋Š” ๋ฐฉ ๋ฒˆํ˜ธ๊ฐ€ ํ•œ ๋‘˜๋ ˆ์— ์žˆ๋Š” ๋ฐฉ์˜ ์ตœ๋Œ€ ๋ฒˆํ˜ธ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์ข…๋ฃŒ
                if(N <= r){
                    break;
                }
            }

            System.out.println(cnt);
        }
    }
}



'์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] BOJ 15829 Hashing  (2) 2024.07.11
[Java] BOJ 2798 ๋ธ”๋ž™์žญ  (1) 2024.07.10
[Java] BOJ 2231 ๋ถ„ํ•ดํ•ฉ  (0) 2024.07.10
[Java] BOJ 1978 ์†Œ์ˆ˜ ์ฐพ๊ธฐ  (0) 2024.07.09
[Java] BOJ 30802 ์›ฐ์ปดํ‚คํŠธ  (0) 2024.07.09