java - 임시반장 정하기(배열)
728x90
)
import java.util.Scanner;
public class AppointingTempLeader {
public static int solution(int n, int[][] students) {
int answer = 0, max = Integer.MIN_VALUE;
for (int i = 1; i <= n; i++) {
int cnt = 0;
for (int j = 1; j <= n; j++) {
for (int k = 1; k <= 5; k++) {
if (students[i][k] == students[j][k]) {
cnt++;
break;
}
}
}
if(cnt > max) {
max=cnt;
answer=i;
}
}
return answer;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] students = new int[n + 1][6];
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= 5; j++) {
students[i][j] = in.nextInt();
}
}
System.out.println(solution(n, students));
}
}
문제풀이
- 학생수와 배열의 index를 같게 하고 5학년 까지만 있으므로 [n+1][6]의 2차원 배열을 생성
- 3중 for문으로 1번 학생의 1 ~ 5학년 까지 같은 반이였던 학생을 만나면 cnt 를 + 1하고 break 한다.
- 같은 반인 학생 수를 카운트하는 cnt를 max 값과 비교하여 max에 저장하고 answer에 i 번 학생을 저장한다.
728x90
'Java > java - algorithm' 카테고리의 다른 글
java - 최대 매출(슬라이딩 윈도우) (0) | 2021.07.29 |
---|---|
java - 두배열 합치기(Two pointer) (0) | 2021.07.27 |
java - 격자판 최대합 (배열) (0) | 2021.07.25 |
java - 숫자만 추출(아스키 코드) (0) | 2021.07.18 |
Java - 유효한 팰린드롬 (정규식) (0) | 2021.07.18 |
댓글
이 글 공유하기
다른 글
-
java - 최대 매출(슬라이딩 윈도우)
java - 최대 매출(슬라이딩 윈도우)
2021.07.29 -
java - 두배열 합치기(Two pointer)
java - 두배열 합치기(Two pointer)
2021.07.27 -
java - 격자판 최대합 (배열)
java - 격자판 최대합 (배열)
2021.07.25 -
java - 숫자만 추출(아스키 코드)
java - 숫자만 추출(아스키 코드)
2021.07.18