본문 바로가기
Problem Solving/SWEA

[SWEA] 6913. 동철이의 프로그래밍 대회

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

문제

N명의 사람들이 어떤 프로그래밍 대회에 참가했고, 대회에는 M개의 문제가 나왔다.

NⅹM 크기의 2차원 배열 a가 주어질 때,  ai,j 는 대회가 끝나고 i번 사람이 j번 문제를 풀었다면 1, 풀지 못했다면 0을 가지는 값이다.

2차원 배열을 보고 1등을 한 사람이 몇 명이고 몇 문제를 풀었는지 구하는 프로그램을 작성하라.

 

풀이방법

입력된 2차원 배열의 각 행의 합 중 최대값을 구하고, 이 최대값과 같은 값을 가지는 행의 갯수를 구한다.

 

소스코드

package samsung;

import java.util.*;

public class s_6913 {
	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+1][m+1];
			
			for(int i = 1; i <= n; i++) {
				for(int j = 1; j <= m; j++) {
					a[i][j] = sc.nextInt();
				}
			}
			
			int max = 0;
			for(int i = 1; i <= n; i++) {
				int sum = 0;
				for(int j = 1; j <= m; j++) {
					sum += a[i][j];
				}
				max = Math.max(max, sum);
			}
			int cnt = 0;
			for(int i = 1; i <= n; i++) {
				int sum = 0;
				for(int j = 1; j <= m; j++) {
					sum += a[i][j];
				}
				if(sum == max)
					cnt++;
			}
			System.out.println("#" + t + " " + cnt + " " + max);
		}
	}
}

 

댓글