๐Ÿงฉ Algorithm/[BOJ] Bronze

BOJ 1598 : ๊ผฌ๋ฆฌ๋ฅผ ๋ฌด๋Š” ์ˆซ์ž ๋‚˜์—ด (Java/์ˆ˜ํ•™/Bronze 3)

devCloud 2024. 10. 12. 15:47
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‰ https://www.acmicpc.net/problem/1598


์„ค๋ช…

์›์ˆญ์ด๋Š” ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์•„๋ฌด๊ฑฐ๋‚˜ ์ƒ๊ฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ˆซ์žํŒ์—์„œ ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜ ์‚ฌ์ด์˜ ์ง๊ฐ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ง๊ฐ๊ฑฐ๋ฆฌ๋Š” ๋™์„œ๋ฐฉํ–ฅ๊ฑฐ๋ฆฌ์™€ ๋‚จ๋ถ๋ฐฉํ–ฅ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์„ ๋œปํ•œ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์ˆซ์žํŒ์—์„œ 11๊ณผ 33์„ ์ƒ๊ฐํ–ˆ๋‹ค๊ณ  ํ•˜์ž. ๊ทธ๋ ‡๋‹ค๋ฉด 11๊ณผ 33์‚ฌ์ด์˜ ์ง๊ฐ๊ฑฐ๋ฆฌ๋Š” 8์ด ๋œ๋‹ค.

(๋™์„œ๋ฐฉํ–ฅ๊ฑฐ๋ฆฌ : 6, ๋‚จ๋ถ๋ฐฉํ–ฅ๊ฑฐ๋ฆฌ : 2) ๋‹ค์Œ ๊ทธ๋ฆผ์— ์ž˜ ๋‚˜ํƒ€๋‚˜์žˆ๋‹ค.

 

ํ’€์ด

์ž…๋ ฅ์ด 11๊ณผ 33์ด๋ผ๊ณ  ํ•˜์ž.

์ˆซ์žํŒ์—์„œ ์ˆซ์ž๊ฐ€ ์•„๋ž˜๋กœ 4๊ฐœ์”ฉ, ์ฆ‰ 4์˜ ๋ฐฐ์ˆ˜๋งˆ๋‹ค ์ˆซ์ž๊ฐ€ ๋‚˜์—ด๋˜๊ธฐ ๋•Œ๋ฌธ์— 4๋กœ ๋‚˜๋ˆ„์–ด์ค˜์•ผ ํ•œ๋‹ค.

 

์œ„์น˜ ๋„์ถœ ๋ฐฉ๋ฒ•

  • 11์„ 4๋กœ ๋‚˜๋ˆ„๋ฉด ๋ชซ์€ 2, ๋‚˜๋จธ์ง€๋Š” 3์ด๋‹ค. ์ด ๋ง์€ ์ฆ‰, 11์€ 2๋ฒˆ์งธ ์ค„ ๋‹ค์Œ์ค„์ธ 3๋ฒˆ์งธ ์ค„์— ๋‚˜๋จธ์ง€๊ฐ€ 3์ด๋ฏ€๋กœ 3๋ฒˆ์งธ์— ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ๋‚˜๋จธ์ง€๊ฐ€ ์žˆ์œผ๋ฉด ๋ชซ์˜ ๋‹ค์Œ๋ฒˆ์งธ ์ค„์— ์žˆ๋‹ค๋Š” ๋ง์ด๊ณ , ๋‚˜๋จธ์ง€๊ฐ€ ์—†์œผ๋ฉด ๋ชซ์œผ๋กœ ๋‚˜์˜จ ์ค„์— ์žˆ๋‹ค๋Š” ๋ง์ด๋‹ค.
  • 33๋„ 4๋กœ ๋‚˜๋ˆ„๋ฉด ๋ชซ์€ 8, ๋‚˜๋จธ์ง€๋Š” 1์ด๋‹ค. ๋‚˜๋จธ์ง€๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ (8 + 1) = 9๋ฒˆ์งธ ์ค„์˜ 1๋ฒˆ์งธ์— ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. 

 

์ง๊ฐ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ

  • ๋ชซ์„ ๊ฐ€๋กœ์˜ ๊ฑฐ๋ฆฌ, ๋‚˜๋จธ์ง€๋ฅผ ์„ธ๋กœ์˜ ๊ฑฐ๋ฆฌ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.
  • 33์˜ ๋ชซ์ธ 8์—์„œ 11์˜ ๋ชซ์ธ 2๋ฅผ ๋นผ๋ฉด ๊ฐ€๋กœ ๊ฑฐ๋ฆฌ๊ฐ€ ๋œ๋‹ค. 8 - 2 = 6
  • 11์˜ ๋‚˜๋จธ์ง€์ธ 3์—์„œ 33์˜ ๋‚˜๋จธ์ง€์ธ 1์„ ๋นผ๋ฉด ์„ธ๋กœ ๊ฑฐ๋ฆฌ๊ฐ€ ๋œ๋‹ค. 3 - 1 = 2
  • ๊ฐ€๋กœ ๊ฑฐ๋ฆฌ์™€ ์„ธ๋กœ ๊ฑฐ๋ฆฌ๋ฅผ ๋”ํ•˜๋ฉด ์ง๊ฐ ๊ฑฐ๋ฆฌ๊ฐ€ ๋œ๋‹ค. 6 + 2 = 8

 

๊ทธ๋Ÿฌ๋‚˜ ์œ„์ฒ˜๋Ÿผ ๋‹จ์ˆœํžˆ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•ด์„œ ๊ณ„์‚ฐํ•˜๋ฉด ์•ˆ ๋œ๋‹ค. ๋ฐ˜๋ก€๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ž…๋ ฅ์ด 5์™€ 4์ธ ๊ฒฝ์šฐ์ด๋‹ค.

5์˜ ๋ชซ์€ 1, 4์˜ ๋ชซ์€ 1์ด๋ฏ€๋กœ ๊ฐ€๋กœ ๊ฑฐ๋ฆฌ๋Š” 0์ด๋‹ค. 5์˜ ๋‚˜๋จธ์ง€๋Š” 1, 4์˜ ๋‚˜๋จธ์ง€๋Š” 0์ด๋ฏ€๋กœ ์„ธ๋กœ ๊ฑฐ๋ฆฌ๋Š” 1์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ง๊ฐ ๊ฑฐ๋ฆฌ๋Š” 1์ด ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ต์€ 4์ด๋‹ค. 

 

์ˆซ์žํŒ์˜ ์›์ ์„ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด์„œ ์ƒ๊ธด ์˜ค๋ฅ˜๋‹ค. ์›์ ์ด 0์ด๋ผ๊ณ  ๊ฐ€์ •ํ•ด์•ผ ํ•œ๋‹ค. 

๋”ฐ๋ผ์„œ ์ž…๋ ฅ ๊ฐ’์— 1์”ฉ ๋นผ์ค˜์•ผ ํ•œ๋‹ค. 

 

 

Solution

import java.io.*;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] input = br.readLine().split(" ");
        int num1 = Integer.parseInt(input[0]);
        int num2 = Integer.parseInt(input[1]);
        num1 -= 1; //์›์ ์„ 0์ด๋ผ ์ƒ๊ฐํ•˜์—ฌ 1์„ ๋นผ์คŒ
        num2 -= 1;
        int result = 0;
        result += Math.abs(num1 / 4 - num2 / 4);
        result += Math.abs(num1 % 4 - num2 % 4);

        System.out.println(result);
    }
}

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ํšŒ๊ณ 

ํ’€์ด๋ฅผ ์žฅํ™ฉํ•˜๊ฒŒ ์ ๊ธด ํ–ˆ์ง€๋งŒ ์ข‹์€ ์„ค๋ช…์€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™๋‹ค. ๋‹จ์ˆœํžˆ ์›์ ์„ 0์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ณ  -1์„ ํ•ด์คฌ์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋งํ•œ ํ’€์ด๋Š” ์•ˆ ๋‚˜์™”์„๊ฑฐ๋‹ค. ๋œ์–ด๋ƒ„์˜ ๋ฏธํ•™... 

๋‚ด ํ’€์ด์˜ ํ—ˆ์ ์€ ์„ธ๋กœ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐ€๋กœ ๊ฑฐ๋ฆฌ๋Š” ๋‚˜๋จธ์ง€๊ฐ€ ์žˆ์„ ๋•Œ์™€ ์—†์„ ๋•Œ๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ๊ณ„์‚ฐํ–ˆ์ง€๋งŒ ์„ธ๋กœ ๊ฑฐ๋ฆฌ๋Š” ๋”ฐ์ง€์ง€ ์•Š์•˜๋˜ ๊ฒƒ์ด๋‹ค. ๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ๋ดค์„ ๋•Œ ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ˆœํžˆ ์ˆ˜ํ•™์‹์œผ๋กœ๋งŒ ์ง๊ฐ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•œ ๊ฒƒ๊นŒ์ง„ ์ž˜ํ–ˆ๋Š”๋ฐ.. ์Šค์Šค๋กœ๊ฐ€ ์•„์‰ฝ๋‹ค. ๋‹ค์Œ ๋ฌธ์ œ์—์„œ๋Š” ์ข€ ๋” ์ข‹์€ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ค๊ธธ!

 

๋งํ•œ ํ’€์ด

    //๋‘˜ ์ค‘์— ํฐ ๊ฐ’, ์ž‘์€ ๊ฐ’ ๋ถ„๋ฆฌ
        int max = Math.max(num1, num2);
        int min = Math.min(num1, num2);
        //์ง๊ฐ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ
        int height = Math.abs((max % 4) - (min % 4)); //๋‚˜๋จธ์ง€ ๊ฐ’์€ ๊ณ ์ •
        int width = ((max / 4) + 1) - ((min / 4) + 1); //๋ชซ๋„ ๋นผ๋‘ 
        if (max % 4 == 0) { //4์˜ ๋ฐฐ์ˆ˜๋ฉด + 3
            width += 1;
        }
        if (min % 4 == 0) {
            width += 1;
        }
        System.out.println(width + height);

 

728x90