728x90
반응형
풀이1 :
1000개의 점수를 scores[]에 입력 받고 이를 정렬해준 후, 내림차순으로 다시 정렬.
if문 활용하여 똑같은 점수가 나오면 cnt++, 이를 max와 비교, 해당 max를 만든 때의 scores[i]가 result
풀이2 :
점수가 0~100점이므로, arr[101]을 만들고 입력값으로 들어오는 점수 부분을 ++해주고 나중에 arr배열 중에서 가장 큰 값을 출력
풀이1
public class Solution1204 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T;
T = sc.nextInt();
for (int tc = 1; tc <= T; tc++) {
int N = sc.nextInt();
int[] scores = new int[1000];
int result = 0;
int temp = 0;
int cnt = 0;
int max = 0;
for (int i = 0; i < scores.length; i++) {
scores[i] = sc.nextInt();
}
Arrays.sort(scores); // 오름차순
for (int i = 0; i < scores.length / 2; i++) { // 내림차순
int a = scores[i];
scores[i] = scores[scores.length - 1 - i];
scores[scores.length - 1 - i] = a;
}
for (int i = 0; i < scores.length; i++) {
if (temp == scores[i]) {
cnt++;
if (cnt > max) {
max = cnt;
result = scores[i];
}
} else cnt = 0;
temp = scores[i];
}
System.out.println("#" + tc + " " + result);
}
}
}
풀이2
import java.util.Scanner;
public class Solution1204 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int tc = 1; tc <= T; tc++) {
int N = sc.nextInt();
int[] scores = new int[101]; // 0부터 100까지의 점수를 저장하기 위한 배열
int maxFrequency = 0;
int mode = 0;
// 점수를 입력받고 해당 점수의 빈도를 세기
for (int i = 0; i < 1000; i++) {
int score = sc.nextInt();
scores[score]++;
}
// 최빈수 찾기
for (int i = 0; i <= 100; i++) {
if (scores[i] >= maxFrequency) {
maxFrequency = scores[i];
mode = i;
}
}
System.out.println("#" + tc + " " + mode);
}
}
}
728x90
반응형
'SWEA' 카테고리의 다른 글
swea 1926 [D2] 간단한 369게임 JAVA (0) | 2023.11.20 |
---|---|
swea 1859 [D2] 백만 장자 프로젝트 JAVA (0) | 2023.11.20 |
swea 1288 [D2] 새로운 불면증 치료법 JAVA (0) | 2023.11.20 |
swea 1285 [D2] 아름이의 돌 던지기 JAVA (0) | 2023.11.20 |
swea 1284 [D2] 수도 요금 경쟁 JAVA (2) | 2023.11.20 |