본문 바로가기
Problem Solving/SWEA

[SWEA] 7102. 준홍이의 카드놀이

by 테리는당근을좋아해 2020. 2. 23.

문제

각 카드 세트는 1번 카드부터 N번 카드, 1번 카드부터 M번 카드로 구성되어 있다.

N번 카드와 M번 카드를 각 카드를 한장 씩 골라 두 카드의 합을 구한다.

각 카드 세트에서 카드를 한 장씩 골라서 카드에 적힌 숫자를 합한 결과 중, 등장할 확률이 가장 높은 숫자는 어떤 숫자인지 구하라.

 

풀이방법

완전탐색으로 N과 M카드로 나올 수 있는 모든 값을 구한다.

 

이 때, N + M + 1 크기의 배열을 만들어 합과 일치하는 인덱스의 값을 계속해서 증가시킨다.

 

배열의 각 원소가 최댓값인 인덱스를 찾는다.

 

소스코드

package samsung;

import java.util.*;

public class s_7102 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		
		for(int t = 1; t <= test; t++) {
			int n = sc.nextInt();
			int m = sc.nextInt();
			int[] a = new int[n+m+1];
			
			for(int i = 1; i <= n; i++) {
				for(int j = 1; j <= m; j++) {
					a[i+j]++;
				}
			}
			int max = 0;
			for(int i = 2; i <= m+n; i++) {
				max = Math.max(a[i], max);
			}
			System.out.print("#" + t + " ");
			for(int i = 2; i <= m+n; i++) {
				if(a[i] == max)
					System.out.print(i + " ");
			}
			System.out.println();
		}
	}
}

 

댓글