이 알고리즘 문제는 인프런의 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 (김태원)의 문제입니다.
문제 설명
코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static int solution(int n, int[][] arr)
{
int answer = 0, max = 0;
// 각 학생 i에 대해 반복
for(int i = 1; i <= n; ++i)
{
int count = 0;
// 다른 모든 학생 j와 비교
for(int j = 1; j <= n; ++j)
{
// 5년 동안 같은 반이었던 적이 있는지 확인
for(int k = 1; k <= 5; ++k)
{
if(arr[i][k] == arr[j][k])
{ // 같은 반이었던 경우
count++;
break; // 더 이상 확인할 필요 없이 다음 학생으로 넘어감
}
}
}
// 최대값 갱신
if(count > max)
{
max = count;
answer = i;
}
}
return answer;
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] arr = new int[N + 1][6]; // 1-based 인덱스 사용을 위해 배열 크기 설정
for(int i = 1; i <= N; ++i)
{
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j = 1; j < 6; j++) arr[i][j] = Integer.parseInt(st.nextToken());
}
System.out.println(solution(N, arr));
}
}
설명
- 주석 참고
'자료구조 & 알고리즘 > Inflearn' 카테고리의 다른 글
[인프런 알고리즘] Chpater3, 1번 문제(두 배열 합치기) (4) | 2024.07.22 |
---|---|
[인프런 알고리즘] Chapter2, 12번 문제(멘토링) (1) | 2024.07.22 |
[인프런 알고리즘] Chpater 2, 10번 문제(봉우리) (0) | 2024.07.18 |
[인프런 알고리즘] Chapter 2, 9번 문제(격자판 최대합) (0) | 2024.07.17 |
[인프런 알고리즘] Chpater 2, 8번 문제(등수 구하기) (0) | 2024.07.16 |