๊ธฐ๋ก๋ฐฉ

BOJ_1166 : ์„ ๋ฌผ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_1166 : ์„ ๋ฌผ

Soom_1n 2023. 1. 6. 01:21

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

 

1166๋ฒˆ: ์„ ๋ฌผ

๋ฏผ์‹์ด๋Š” ์•„์ด๋“ค์—๊ฒŒ ์„ ๋ฌผํ•  ๊ฐ™์€ ํฌ๊ธฐ์˜ ์ž‘์€ ๋ฐ•์Šค๋ฅผ N๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋ชจ๋“  ์ž‘์€ ๋ฐ•์Šค๋Š” ์ •์œก๋ฉด์ฒด์ด๊ณ , ํฌ๊ธฐ๋Š” A × A × A ์ด๋‹ค. ๋ฏผ์‹์ด๋Š” ์ด ์ž‘์€ ๋ฐ•์Šค๋ฅผ ํฌ๊ธฐ๊ฐ€ L × W × H ์ธ ์ง์œก๋ฉด์ฒด ๋ฐ•์Šค์—

www.acmicpc.net



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

  • ํ•œ ๋ณ€์˜ ๊ธธ์ด๊ฐ€ A์ธ N๊ฐœ์˜ ์ •์‚ฌ๊ฐํ˜• ์ƒ์ž๊ฐ€ ์žˆ๋‹ค.
  • L * W * H ํฌ๊ธฐ์˜ ์ƒ์ž์— ์ƒ์ž๋ฅผ ๋ชจ๋‘ ๋„ฃ์–ด์•ผ ํ•  ๋•Œ, A์˜ ์ตœ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    • ํŠน์ • ๊ฐ’์„ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ถ„ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๋ฌธ์ œ ์กฐ๊ฑด์˜ ์ ˆ๋Œ€/์ƒ๋Œ€ ์˜ค์ฐจ๋Š” 10^-9 ๊นŒ์ง€ ํ—ˆ์šฉ์ด๋ฏ€๋กœ ์ถฉ๋ถ„ํ•œ ๋ฐ˜๋ณตํšŸ์ˆ˜๋กœ ์ด๋ถ„ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•œ๋‹ค.

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int l = sc.nextInt();
        int w = sc.nextInt();
        int h = sc.nextInt();

        double start = 0, end = Math.max(l, Math.max(w,h));

        for (int i = 0; i < 10000; i++) {
            double mid = (start + end) / 2;
            if ((long)(l/mid) * (long)(w/mid) * (long)(h/mid) >= n)
                start = mid;
            else
                end = mid;
        }
        System.out.println(end);
    }
}

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

  • n, l, w, h๋Š” ์ตœ๋Œ€ 10์–ต์ด๋ฏ€๋กœ intํ˜•์œผ๋กœ ์„ ์–ธํ•œ๋‹ค.
  • ์ด๋ถ„ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ ์ธ๋ฑ์Šค์™€ ๋ ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•œ๋‹ค.
    • ์†Œ์ˆ˜์ ๊นŒ์ง€ ๊ณ„์‚ฐ๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ doubleํ˜•์œผ๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.
  • start์™€ end์˜ ์ฐจ์ด๊ฐ€ 10^-9๋ณด๋‹ค ๋” ์ž‘์•„์ง€๋„๋ก ์ถฉ๋ถ„ํžˆ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • start์™€ end์˜ ์ค‘๊ฐ„๊ฐ’์„ A๋กœ ๋‘๊ณ , l * w * h ํฌ๊ธฐ์˜ ์ƒ์ž์— ๋“ค์–ด๊ฐ€๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
    • ๋“ค์–ด๊ฐ„๋‹ค๋ฉด start๋Š” mid, ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค๋ฉด end๋ฅผ mid๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ๋ฐ˜๋ณตํ•œ๋‹ค.
  • startํ˜น์€ end๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์ŠคํŽ˜์…œ์ €์ง€์ธ ์ด์œ ๋Š” ์˜ค์ฐจ๋ฒ”์œ„ ์•ˆ์—์„œ ๋‹ต์„ ๋„์ถœํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ ๊ฐ™๋‹ค.
  • ์ด์ „ ํฌ์ŠคํŒ…๊ณผ ๊ฐ™์ด ์ด๋ถ„ํƒ์ƒ‰์˜ ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค.
    • ์ด์ง„ํƒ์ƒ‰๊ณผ ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜๋ฅผ ์™„์ „ํžˆ ๊ฐ™๊ฒŒ ๋ณด์•˜์ง€๋งŒ, ํฌ์ŠคํŒ…์„ ์ฐพ์•„๋ณด๋‹ˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ™์•„๋„ ์ฐพ๊ณ ์žํ•˜๋Š” ๊ฐ’์—์„œ ์ฐจ์ด๊ฐ€ ๋‚˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.
    • ์ด์ง„ํƒ์ƒ‰ : ์ •๋ ฌ๋œ ์ผ๋ จ์˜ ๊ฐ’์—์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    • ํŒŒ๋ผ๋ฉ”ํŠธ๋ฆญ ์„œ์น˜ : ์ผ๋ จ์˜ ๊ฐ’๋“ค์ด ์•„๋‹ˆ๋ผ ์ฃผ์–ด์ง„ ๋ฒ”์œ„ ๋‚ด์—์„œ ์›ํ•˜๋Š” ๊ฐ’ ๋˜๋Š” ์›ํ•˜๋Š” ์กฐ๊ฑด์— ๊ฐ€์žฅ ์ผ์น˜ํ•˜๋Š” ๊ฐ’์„ ์ฐพ์•„๋‚ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜

728x90

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

BOJ_1213 : ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ  (0) 2023.01.10
BOJ_1183 : ์•ฝ์†  (0) 2023.01.09
BOJ_1072 : ๊ฒŒ์ž„  (0) 2023.01.04
BOJ_1063 : ํ‚น  (0) 2023.01.04
BOJ_1057 : ํ† ๋„ˆ๋จผํŠธ  (0) 2023.01.01