๊ธฐ๋ก๋ฐฉ

BOJ_2512 : ์˜ˆ์‚ฐ ๋ณธ๋ฌธ

CodingTest/Java

BOJ_2512 : ์˜ˆ์‚ฐ

Soom_1n 2023. 1. 11. 01:08

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

 

2512๋ฒˆ: ์˜ˆ์‚ฐ

์ฒซ์งธ ์ค„์—๋Š” ์ง€๋ฐฉ์˜ ์ˆ˜๋ฅผ ์˜๋ฏธํ•˜๋Š” ์ •์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 3 ์ด์ƒ 10,000 ์ดํ•˜์ด๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” ๊ฐ ์ง€๋ฐฉ์˜ ์˜ˆ์‚ฐ์š”์ฒญ์„ ํ‘œํ˜„ํ•˜๋Š” N๊ฐœ์˜ ์ •์ˆ˜๊ฐ€ ๋นˆ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ์ด ๊ฐ’๋“ค์€ ๋ชจ๋‘ 1 ์ด์ƒ

www.acmicpc.net



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

  • n๊ฐœ์˜ ์ˆซ์ž์˜ ํ•ฉ์ด m๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๊ฒŒ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ๊ทธ ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    • ์ˆซ์ž๋“ค์˜ ํ•ฉ์ด m๋ณด๋‹ค ์ž‘๋‹ค๋ฉด, ๊ธฐ์กด ์ˆซ์ž๋“ค ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
    • ์ˆซ์ž๋“ค์˜ ํ•ฉ์ด m๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ์ตœ๋Œ€๊ฐ’ ์ปคํŠธ๋ผ์ธ์„ ๋งŒ๋“ค๊ณ  ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋  ๋•Œ์˜ ์ปคํŠธ๋ผ์ธ์„ ์ถœ๋ ฅํ•œ๋‹ค.

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

import java.util.Scanner;

public class Main {
    private static int sum(int[] arr, int max) {
        int sum = 0;
        for (int i : arr) {
            if (i > max){
                sum += max;
            }
            else sum += i;
        }
        return sum;
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] arr = new int[n];
        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
        }
        int m = sc.nextInt();

        if (sum(arr, 100_000) <= m) {
            int max = 0;
            for (int i : arr) {
                if (i > max)
                    max = i;
            }
            System.out.println(max);
        }
        else {
            int l = 1, r = 100_000, mid = -1;
            while (l <= r) {
                mid = (l+r)/2;
                int sum = sum(arr, mid);
                if (sum <= m)
                    l = mid + 1;
                else
                    r = mid - 1;
            }
            System.out.println(r);
        }
    }
}

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

  • ๋ฐฐ์—ด์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” sum ๋ฉ”์†Œ๋“œ๋Š” ๋ฐฐ์—ด๊ณผ ์ปคํŠธ๋ผ์ธ์„ ์ž…๋ ฅ๋ฐ›์•„ ํ•ฉ์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • ๋ฐฐ์—ด์˜ ํ•ฉ์ด m๋ณด๋‹ค ์ž‘๋‹ค๋ฉด, ๊ธฐ์กด ์ˆซ์ž๋“ค ์ค‘ ์ตœ๋Œ€๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • ๋ฐฐ์—ด์˜ ํ•ฉ์ด m๋ณด๋‹ค ํฌ๋‹ค๋ฉด, ์ด๋ถ„ํƒ์ƒ‰์„ ํ†ตํ•ด ํ•ฉ์ด m๋ณด๋‹ค ์ž‘์€ ์ตœ๋Œ€๊ฐ’์ด ๋  ๋•Œ์˜ ์ปคํŠธ๋ผ์ธ์„ ์ฐพ๋Š”๋‹ค. 

๐Ÿ”ธ end ๐Ÿ”ธ

  • ์˜ค๋žœ๋งŒ์— ์ด๋ถ„ํƒ์ƒ‰์„ ์‚ฌ์šฉํ•˜๋ ค๋‹ˆ ๋งŽ์ด ์–ด๋ ค์› ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.
  • ๋ฌธ์ œ์—์„œ ์ด๋ถ„ํƒ์ƒ‰์„ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•ด์•ผํ•˜๋Š”์ง€๋Š” ์ž˜ ์บ์น˜ํ•ด์„œ ํ’€์ดํ–ˆ๋Š”๋ฐ, ํƒ์ƒ‰ ์ข…๋ฃŒ์กฐ๊ฑด์„ ์ž˜ ์ •ํ•˜์ง€ ๋ชปํ•ด์„œ 2๋ฒˆ ํ‹€๋ฆฌ๊ฒŒ ๋˜์—ˆ๋‹ค.
    • ํŠนํžˆ ์ตœ์ข…์œผ๋กœ mid๋ฅผ ์ถœ๋ ฅํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ r์„ ์ถœ๋ ฅํ•ด์•ผํ–ˆ๋‹ค.

728x90

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

BOJ_2559 : ์ˆ˜์—ด  (0) 2023.01.12
BOJ_25304 : ์˜์ˆ˜์ฆ  (0) 2023.01.12
BOJ_2407 : ์กฐํ•ฉ  (0) 2023.01.10
BOJ_10974 : ๋ชจ๋“  ์ˆœ์—ด  (0) 2023.01.10
BOJ_1213 : ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ  (0) 2023.01.10