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

[Java] BOJ 2839 ์„คํƒ• ๋ฐฐ๋‹ฌ

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

๋ฌธ์ œ 

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

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

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

  • ์ œ์ผ ์ ๊ฒŒ ๋“ค๊ณ ๊ฐ€๋ ค๋ฉด 5kg ๋ด‰์ง€๋ฅผ ๋งŽ์ด ์“ฐ๋Š”๊ฒŒ ์ค‘์š”ํ•˜๋ฏ€๋กœ While๋ฌธ์—์„œ 5๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด ๊ฒฐ๊ณผ๊ฐ’์— 5๋กœ ๋‚˜๋ˆˆ ๋ชซ์„ ๋”ํ•˜๊ณ  ์ข…๋ฃŒํ•œ๋‹ค.
  • ๋งŒ์•ฝ 5๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด 3kg ๋ด‰์ง€๋ฅผ ์จ์•ผ๋˜๋ฏ€๋กœ ์„คํƒ• ์ด ๋ฌด๊ฒŒ์—์„œ 3์„ ๋นผ๊ณ  ๊ฒฐ๊ณผ๊ฐ’์— 1์„ ๋”ํ•œ๋‹ค.
  • ๊ทธ๋ ‡๊ฒŒ 3์„ ๋นผ๊ณ  ๋‹ค์‹œ While๋ฌธ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ€์„œ 3์œผ๋กœ ๋บ€ ๋‚˜๋จธ์ง€๊ฐ€ 5๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š”์ง€ ๊ณ„์‚ฐํ•˜๊ณ  ์•„๋‹ˆ๋ฉด ๋‹ค์‹œ 3์„ ๋บ€๋‹ค.
  • ๊ณ„์†ํ•ด์„œ ๋ฐ˜๋ณตํ•˜๋‹ค๊ฐ€ ๋งŒ์•ฝ ์„คํƒ•์˜ ์ด ๋ฌด๊ฒŒ๊ฐ€ ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋œ๋‹ค๋ฉด 3kg ๋ด‰์ง€์™€ 5kg ๋ด‰์ง€๋กœ ์„คํƒ•์„ ์ •ํ™•ํ•˜๊ฒŒ ๋‚˜๋ˆŒ ์ˆ˜ ์—†๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ ๊ฒฐ๊ณผ๊ฐ’์„ -1๋กœ ์ €์žฅํ•˜๊ณ  While๋ฌธ์„ ์ข…๋ฃŒํ•œ๋‹ค. 

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

  • X

๋‚˜๋ฆ„ ์‰ฝ๊ฒŒ ํ’€์–ด์„œ ์ข‹๋‹ค ใ…Ž

์ฝ”๋“œ

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

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

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

        // ๊ฒฐ๊ณผ๊ฐ’ ์ €์žฅ ๋ณ€์ˆ˜
        int result = 0;

        while(true){
            // ๋งŒ์•ฝ ์„คํƒ•์ด 5๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง„๋‹ค๋ฉด
            if(N % 5 == 0){
                // ๊ฒฐ๊ณผ๊ฐ’์€ ๊ธฐ์กด ๊ฒฐ๊ณผ๊ฐ’ + ์„คํƒ•์„ 5๋กœ ๋‚˜๋ˆˆ ๋ชซ
                result = result + N / 5;
                // ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ
                break;
            }
            // ๋งŒ์•ฝ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋ฉด
            else{
                // ์„คํƒ•์„ 3ํ‚ค๋กœ ๋นผ๊ณ 
                N = N - 3;
                // 3ํ‚ค๋กœ ๋ด‰์ง€๋ฅผ ํ•˜๋‚˜ ์ผ์œผ๋ฏ€๋กœ ๊ฒฐ๊ณผ๊ฐ’ + 1
                result = result + 1;
            }

            // ๋งŒ์•ฝ ์„คํƒ•์˜ ๋ฌด๊ฒŒ๊ฐ€ ๋งˆ์ด๋„ˆ์Šค๊ฐ€ ๋œ๋‹ค๋ฉด
            // 5์™€ 3์œผ๋กœ ์ •ํ™•ํ•˜๊ฒŒ ๋‚˜๋ˆ„์–ด์ง€์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ
            if(N < 0){
                // ๊ฒฐ๊ณผ๊ฐ’์„ -1๋กœ ์ €์žฅํ•˜๊ณ  ๋ฐ˜๋ณต๋ฌธ ์ข…๋ฃŒ
                result = -1;
                break;
            }
        }

        System.out.println(result);
    }
}