Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
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
관리 메뉴

으하하 공부일기

[SWEA] - 5948. 새샘이의 7-3-5 게임 (D3) 본문

SWEA/D3

[SWEA] - 5948. 새샘이의 7-3-5 게임 (D3)

0으하하0 2022. 5. 12. 21:55

[문제]

숫자게임을 좋아하는 새샘이는 서로 다른 7개의 정수 중에서 3개의 정수를 골라 합을 구해서 수를 만들려고 한다.
이렇게 만들 수 있는 수 중에서 5번째로 큰 수를 출력하는 프로그램을 작성하라.

[입력]
첫 번째 줄에 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 7개의 서로 다른 정수가 공백으로 구분되어 주어진다. 각 정수는 1이상 100이하이다.

[출력]
각 테스트 케이스마다 첫 번째 줄에는 ‘#x’(x는 테스트케이스 번호를 의미하며 1부터 시작한다)를 출력하고, 답을 출력한다.

문제 풀기

5948. 새샘이의 7-3-5 게임

 


[풀이]

import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Scanner;

class Solution {
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
				
		int t = sc.nextInt();
		
		for(int tc=1; tc<=t; tc++) {
			int[] arr = new int[7];
			
			// 3개의 정수 합을 저장할 set
			HashSet<Integer> set = new HashSet<>();
			
			for(int i=0; i<7; i++) arr[i] = sc.nextInt();
			
			for(int i=0; i<7; i++) {
				for(int j=i+1; j<7; j++) {
					for(int k=j+1; k<7; k++) {
						set.add(arr[i] + arr[j] + arr[k]);
					}
				}
			}
			
			// set을 정렬하기 위한 List
			LinkedList<Integer> list = new LinkedList<>(set);
			Collections.sort(list);
			
			System.out.format("#%d %d\n", tc, list.get(list.size()-5));
		}
	}
}