[백준 2798번] 블랙잭
[백준 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 메서드를 사용한다.
댓글남기기