๊ธฐ๋ก๋ฐฉ

BOJ_1094 : ๋ง‰๋Œ€๊ธฐ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_1094 : ๋ง‰๋Œ€๊ธฐ

Soom_1n 2022. 9. 18. 16:15

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

1094๋ฒˆ: ๋ง‰๋Œ€๊ธฐ

์ง€๋ฏผ์ด๋Š” ๊ธธ์ด๊ฐ€ 64cm์ธ ๋ง‰๋Œ€๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์–ด๋Š ๋‚ , ๊ทธ๋Š” ๊ธธ์ด๊ฐ€ Xcm์ธ ๋ง‰๋Œ€๊ฐ€ ๊ฐ€์ง€๊ณ  ์‹ถ์–ด์กŒ๋‹ค. ์ง€๋ฏผ์ด๋Š” ์›๋ž˜ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ๋ง‰๋Œ€๋ฅผ ๋” ์ž‘์€ ๋ง‰๋Œ€๋กœ ์ž๋ฅธ๋‹ค์Œ์—, ํ’€๋กœ ๋ถ™์—ฌ์„œ ๊ธธ์ด๊ฐ€ Xcm์ธ ๋ง‰๋Œ€

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • 64cm ๋ง‰๋Œ€๊ธฐ๋ฅผ ์›ํ•˜๋Š” ํฌ๊ธฐ(x)์˜ ๋ง‰๋Œ€๊ธฐ๋กœ ๋งŒ๋“ค๋•Œ, ์กฐ๊ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
    • ๋ชจ๋“  ๋ง‰๋Œ€์˜ ํ•ฉ์ด x๋ณด๋‹ค ํฌ๋ฉด ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
      • ๊ฐ€์žฅ ์งง์€ ๋ง‰๋Œ€๋ฅผ ์ ˆ๋ฐ˜์œผ๋กœ ์ž๋ฅธ๋‹ค.
      • ์ž๋ฅธ ๋ง‰๋Œ€์˜ ์ ˆ๋ฐ˜์„ ๋ฒ„๋ ธ์„๋•Œ๋„ ์ „์ฒด ํ•ฉ์ด x๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ๊ทธ ๋ง‰๋Œ€๋ฅผ ๋ฒ„๋ฆฐ๋‹ค.
  • ๋ง‰๋Œ€ ์กฐ๊ฐ์˜ ๊ฐœ์ˆ˜๋Š” ๊ณผ์ •์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜์™€ ๊ฐ™๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        ArrayList<Integer> arr = new ArrayList<Integer>();
        arr.add(64);

        int x = sc.nextInt();
        int sum = 64;

        while(sum > x){
            int min = 65, idx = 0;
            for (int i = 0; i < arr.size(); i++){
                if (arr.get(i) < min){
                    min = arr.get(i);
                    idx = i;
                }
            }
            int temp = arr.get(idx)/2;
            arr.set(idx, temp);
            arr.add(temp);

            if (sum-arr.get(idx) >= x){
                arr.remove(arr.size()-1);
                sum -= temp;
            }
        }
        System.out.println(arr.size());
    }
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ArrayList์— ๋ง‰๋Œ€๋“ค์„ ๋„ฃ์–ด์„œ ๊ณ„์‚ฐํ•œ๋‹ค.
    • ์ฒ˜์Œ์€ 64cm ๋ง‰๋Œ€๊ฐ€ ์žˆ๊ณ  ์ดํ•ฉ sum๋„ 64์ด๋‹ค.
    • ๋ฌธ์ œ์กฐ๊ฑด๋Œ€๋กœ sum > x ์ด๋ฉด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
      • ์ตœ์†Œ๊ฐ’๊ณผ ๊ทธ ์ธ๋ฑ์Šค๋ฅผ ์ฐพ๋Š”๋‹ค.
      • ์ตœ์†Œ๊ฐ’์„ ์ ˆ๋ฐ˜ ์ž๋ฅธ๋‹ค.
        • arr.set()์œผ๋กœ ์ตœ์†Œ๊ฐ’ ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ ๊ทธ ์ ˆ๋ฐ˜์œผ๋กœ ์ˆ˜์ •ํ•œ๋‹ค.
        • arr.add()๋กœ ์ตœ์†Œ๊ฐ’์˜ ์ ˆ๋ฐ˜์„ ์ถ”๊ฐ€ํ•œ๋‹ค.
      • ๋งŒ์•ฝ sum์—์„œ ์ตœ์†Œ๊ฐ’์˜ ์ ˆ๋ฐ˜์„ ๋นผ๋”๋ผ๋„ x๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ์ตœ์†Œ๊ฐ’์˜ ์ ˆ๋ฐ˜์„ ArrayList์™€ sum์—์„œ ๋บ€๋‹ค.
  • ๋ฐ˜๋ณต์ด ๋๋‚˜๋ฉด ArrayList์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์ƒ๊ฐ๋ณด๋‹ค ํ—ท๊น”๋ฆฌ๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜๋˜ ๋ฌธ์ œ์˜€์ง€๋งŒ, ํ’€๊ณ ๋‚˜๋‹ˆ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€๋Š” ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค.
  • ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ณด๋‹ˆ ๊ฐœ์„ ํ•  ์ ์ด ๋งŽ์•˜๋‹ค.
    • ์ตœ์†Œ๊ฐ’์ด ํ•ญ์ƒ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋กœ ์˜ค๋ฏ€๋กœ, ์ตœ์†Œ๊ฐ’์ฐพ๊ธฐ ๋ฐ˜๋ณต๋ฌธ์„ ํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค.
    • ๋ง‰๋Œ€๊ธฐ์˜ ์ˆ˜๋Š” ๊ณผ์ •์˜ ๋ฐ˜๋ณตํšŸ์ˆ˜๋กœ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ArrayList๋„ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค.
    • ํƒœ๊ทธ๋ฅผ ๋ณด๋‹ˆ ๋น„ํŠธ๋งˆ์Šคํ‚น์œผ๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
  • ์•„๋ž˜๋Š” ๋‹ค๋ฅธ ๋‹ต์ง€, ์œ„๋Š” ํ•„์ž์˜ ํ’€์ด ๊ฒฐ๊ณผ์ด๋‹ค.

728x90