Point πŸ’‘


λ°±μ€€ 2437 풀이 및 ν•΄μ„€

λ„ˆλ¬΄ 쒋은 λΈ”λ‘œκ·Έ 풀이λ₯Ό λ°œκ²¬ν–ˆλ‹€!

μˆ˜μ§μ„ μœΌλ‘œ λ²”μœ„λ₯Ό νŒŒμ•…ν•΄μ„œ κ·Έ λ²”μœ„κ°€ λŠμ΄μ§€ μ•ŠλŠ”μ§€ νŒŒμ•…ν•˜λŠ” 것이 ν•΅μ‹¬μ΄μ—ˆλ‹€.

λˆ„μ ν•© 문제λ₯Ό ν’€ λ•Œ λ‹€μŒ 아이디어λ₯Ό κΈ°μ–΅ν•˜μž :0

Python Solution


import sys
n = int(sys.stdin.readline())
weight = [0]
weight.extend(list(map(int, sys.stdin.readline().split())))
weight.sort()

temp = 0
arr = []
for i in range(len(weight)):
    temp += weight[i]
    arr.append(temp)

flag = False
for i in range(1, len(weight)):
    if arr[i-1] + 1 < weight[i]:
        print(arr[i-1] + 1)
        flag = True
        break

if flag == False:
    print(arr[-1]+1)
import sys
n = int(sys.stdin.readline())
weight = (list(map(int, sys.stdin.readline().split())))
weight.sort()

target = 1
for i in weight:
    if target < i:
        break
    target += i

print(target)

Java Solution


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {

    static int n;
    static int[] weight;
    static int target;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.parseInt(br.readLine());
        StringTokenizer st = new StringTokenizer(br.readLine());

        weight = new int[n];
        for (int i=0; i<n; i++){
            weight[i] = Integer.parseInt(st.nextToken());
        }

//        System.out.println(n);
//        System.out.println(Arrays.toString(weight));

        Arrays.sort(weight);

        target = 1;
        for (int i=0; i<n; i++) {
            if (target < weight[i]) {
                break;
            }
            target += weight[i];
        }

        System.out.println(target);
    }
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {

    static int n;
    static int[] weight;
    static int target;

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        n = Integer.parseInt(br.readLine());

        weight = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).sorted().toArray();

//        System.out.println(Arrays.toString(weight));

        target = 1;

        target = Arrays.stream(weight)
                // takewhile: ifλ¬Έ -> μ•„λ‹κ²½μš° λ°˜λ³΅μž‘μ—… 쀑단
                .takeWhile(w -> target >= w)
                // μ΄ˆκΉƒκ°’, λˆ„μ λœ κ°’, ν˜„μž¬ μš”μ†Œ
                .reduce(target, (acc, w) -> target += w);

        System.out.println(target);

    }
}