티스토리 뷰
728x90
https://www.acmicpc.net/problem/11652
11652번: 카드
준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지
www.acmicpc.net
간단한 문제 같으면서도 계속되는 오류로 무엇이 문제인가 찾아보니 제 풀이에 두 개의 문제가 있었습니다.
첫 번째로는 2^62을 보고 long 타입인지 확인을 하지 못한 점
두 번째로는 hashmap에 넣고 value를 꺼내서 비교하려고 했던 점
우선 주어진 입력값들을 정렬합니다.
주어진 예제로 비유를 들자면 '1 1 2 2 1 2' 로 들어왔을 때, '1 1 1 2 2 2' 이런 식으로 정렬합니다.
그다음 1번 index부터 n-2번 index까지 해당 index에 있는 숫자의 개수와 index의 위치를 저장할 변수를 선언합니다.
정렬 후, 비교하는 방법은 bubble sort처럼 인접한 변수끼리 값을 비교합니다.
만약 둘이 같으면 숫자의 개수를 늘려주고, 다르다면 개수를 1로 초기화시켜줍니다.
만약 둘이 숫자가 같아서 cnt 값이 증가된다면, 자연스럽게 max(cnt) 값도 증가할 것이며 다르다면 cnt는 1로 초기화됐기 때문에 다시 max값만큼의 개수가 없는 한 max값은 유지가 되는 구조입니다.
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
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
long card[] = new long[N];
for (int i = 0; i < N; i++) {
card[i] = Long.parseLong(br.readLine());
}
Arrays.sort(card);
int cnt = 1, max = 1, maxIdx = 0;
for (int i = 1; i < N; i++) {
if (card[i] == card[i - 1]) {
cnt++;
} else {
cnt = 1;
}
if (cnt > max) {
max = cnt;
maxIdx = i;
}
}
br.close();
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
bw.write(card[maxIdx] + "\n");
bw.flush();
bw.close();
}
}
|
cs |
'코딩 > 자바 백준' 카테고리의 다른 글
백준 16395 파스칼의 삼각형(JAVA) (0) | 2021.08.31 |
---|---|
백준 17478 재귀함수가 뭔가요? (JAVA) (0) | 2021.08.31 |
백준 10816 숫자 카드 2 (JAVA) (0) | 2021.08.26 |
백준 9237 이장님 초대 (JAVA) (0) | 2021.08.25 |
백준 1822 차집합(JAVA) (0) | 2021.08.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준 13335 파이썬
- 백준 9205 파이썬
- 백준 23253
- 백준 13335
- 백준 12034
- 백준 2304 파이썬
- 백준 6593 파이썬
- 백준 4446
- 백준 12788 파이썬
- 백준 20362
- 백준 12034 파이썬
- 백준 10825
- 백준 11123
- 백준 9205
- 백준 2075 파이썬
- 백준 1351 파이썬
- 백준 6593
- 백준 2075
- 백준 2304
- 백준 1351
- 백준 1916
- 백준 1504 파이썬
- 백준 4446 파이썬
- 백준 23253 파이썬
- 백준 12788
- 백준 2491 파이썬
- 백준 11123 파이썬
- 백준 1916 파이썬
- 백준 20362 파이썬
- 백준 10825 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함