문제 : https://www.acmicpc.net/problem/11652
11652번: 카드
준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지
www.acmicpc.net
문제 요약 : 가장 많이 갖고 있는 카드 번호 출력
입력 | 출력 |
1 ≤ n(카드 수) ≤ 1000000 -2^62 ≤ 카드번호 ≤ 2^62 |
가장 많이 갖고 있는 카드 출력(개수 같을 경우 작은 수) |
JAVA
소스코드 : https://github.com/cbkpar/BOJ/blob/main/boj_11652.java
채점 번호 | 아이디 | 문제 번호 | 결과 | 메모리 | 시간 | 언어 | 코드 길이 |
30645018 | cbkpar | 11652 | 맞았습니다!! | 24820KB | 332ms | Java 11 | 655B |
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n,i,m,k;
long t,ans;
n = Integer.parseInt(br.readLine());
long[] arr = new long[n];
for(i=0;i<n;i++) arr[i] = Long.parseLong(br.readLine());
Arrays.sort(arr);
t = ans = arr[0];
m = k = 1;
for(i=1;i<n;i++) {
if(t==arr[i]) {
k++;
}else {
t = arr[i];
k = 1;
}
if(k>m) {
m = k;
ans = t;
}
}
System.out.println(ans);
}
}
카드를 받은 뒤 번호 순으로 정렬 한 뒤
같은 번호의 개수를 세며 계산해준다.
느린코드 )
HashMap을 사용하여 해당 번호에 대해 몇개 입력 받았는지 계산하는 알고리즘을 작성하였다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Map<Long, Integer> map = new HashMap<Long, Integer>();
int n,i,m;
long t,ans;
n = Integer.parseInt(br.readLine());
for(i=0;i<n;i++) {
t = Long.parseLong(br.readLine());
if(map.containsKey(t)) {
map.put(t,map.get(t)+1);
}else {
map.put(t,1);
}
}
ans = Long.MAX_VALUE;
m = 0;
for(Long k : map.keySet()) {
if(map.get(k)>m) {
m = map.get(k);
ans = k;
}else if(map.get(k)==m) {
ans = Math.min(ans, k);
}
}
System.out.println(ans);
}
}
'백준온라인' 카테고리의 다른 글
[백준온라인] 10163번 색종이 (0) | 2021.07.07 |
---|---|
[백준온라인] 6965번 Censor (0) | 2021.07.06 |
[백준온라인] 1855번 암호 (0) | 2021.07.04 |
[백준온라인] 2535번 아시아 정보올림피아드 (0) | 2021.07.04 |
[백준온라인] 9742번 순열 (0) | 2021.07.04 |