728x90
오답 노트 & 새로 알게 된 점
해당 문제를 그냥 완탐으로 풀게 된다면 (O(N^2)로) TLE가 난다.
그래서 정렬을 하고 나서, 앞에서부터 순서대로 탐색을 한다.
현재 index에 있는 값과 앞의 값을 비교하여 같으면 curCnt를 늘려주고,
다르게 되면 curCnt를 1로 해준다. 새로운 값이 나왔으므로 1로 초기화를 시켜줘야한다.
그리고 curCnt가 maxCnt가 보다 크면 이 때 횟수가 가장 많은 수를 바꿔줘야한다.
코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
package Sort;
import java.io.*;
import java.util.*;
public class BOJ11652 {
static int atoi(String str) {
return Integer.parseInt(str);
}
static int N;
static long A[];
public static void main(String[] args) throws IOException {
input();
pro();
}
static void pro() {
Arrays.sort(A);
long max = A[0];
int curCnt = 1, maxCnt = 1;
for (int i = 1; i < N; i++) {
if(A[i] == A[i-1]) curCnt++;
else{
curCnt = 1;
}
if(curCnt > maxCnt){
maxCnt = curCnt;
max = A[i];
}
}
System.out.println(max);
}
static void input() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = atoi(br.readLine());
A = new long[N];
for (int i = 0; i < N; i++) {
A[i] = Long.parseLong(br.readLine());
}
}
}
|
cs |
728x90
'BOJ(Java)' 카테고리의 다른 글
자바(백준) 14891 톱니바퀴 (0) | 2021.10.18 |
---|---|
자바(백준) 15970 화살표 그리기 (0) | 2021.10.17 |
자바(백준) 21317 징검다리 건너기 (0) | 2021.10.16 |
자바(백준) 1759 암호 만들기 (0) | 2021.10.14 |
자바(백준) 14888 연산자 끼워넣기 (0) | 2021.10.13 |