최대 1 분 소요

[백준 2798번] 블랙잭

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.StringTokenizer;
 
public class 백준_손수경_정답_2798 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st;
        ArrayList<Integer> num = new ArrayList<> ();
        st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
 
        st = new StringTokenizer(br.readLine());
        
        for (int i = 0; i < n; i++) {
            num.add(Integer.parseInt(st.nextToken()));
        }
 
        int dif = 0;
        int minDif = m; //차이가 날 수 있는 가장 큰 값: m
        int ans = 0;
        for (int i = 0; i < n - 2; i++) {
            for (int j = i + 1; j < n - 1; j++) {
                for (int k = j + 1; k < n; k++) {
                    int sum = num.get(i) + num.get(j) + num.get(k); //리스트에서 요소 하나를 뽑아서 사용하기 위해서는 .get메서드 이용
                    dif = m - sum;
                    if (dif >= 0 && dif < minDif) {
                        minDif = dif;
                        ans = sum;
                    }
                }
            }
        }
        bw.write(ans + "\n");
        bw.close();
    }
}
 
cs


배운 점

리스트에서 인덱스를 통해서 요소 하나를 출력하기 위해서는 .get 메서드를 사용한다. list.get(index)형식으로 사용! 그리고 리스트에 값을 추가하기 위해서는 .add 메서드를 사용한다.

댓글남기기