https://www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main
{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
HashMap<String,Integer> record = new HashMap();
for(int i=0; i<n; i++){
String input = br.readLine();
if(record.containsKey(input)){
record.put(input,record.get(input)+1);
}else{
record.put(input,1);
}
}
int maxCount = 0;
for(int value : record.values()){
if(maxCount<value) maxCount = value;
}
List<String> names = new ArrayList<>();
for(String key : record.keySet()){
if(record.get(key)==maxCount) names.add(key);
}
Collections.sort(names);
bw.write(names.get(0));
bw.flush();
}
}
containsKey로 확인 안해주고 getOrDefault를 써도 된다.
import java.util.*;
class Main
{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Map<String, Integer> titles = new HashMap<String, Integer>();
for (int i = 0; i < N; i++) {
String title = sc.next();
titles.put(title, titles.getOrDefault(title, 0) + 1);
}
String maxTitle = "";
int maxCount = 0;
for (Map.Entry<String, Integer> title : titles.entrySet()) {
if (title.getValue() > maxCount ||
(title.getValue() == maxCount && title.getKey().compareTo(maxTitle) < 0)) {
maxTitle = title.getKey();
maxCount = title.getValue();
}
}
System.out.println(maxTitle);
}
}
'Problem Solving > 정렬' 카테고리의 다른 글
BOJ2910 빈도 정렬 (0) | 2024.02.06 |
---|---|
BOJ18870 좌표압축 (0) | 2024.02.06 |
BOJ 7785 회사에 있는 사람 (1) | 2024.02.06 |
BOJ10814 나이순 정렬 (0) | 2024.02.05 |
BOJ1181 단어 정렬 (0) | 2024.02.05 |
https://www.acmicpc.net/problem/1302
1302번: 베스트셀러
첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main
{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
HashMap<String,Integer> record = new HashMap();
for(int i=0; i<n; i++){
String input = br.readLine();
if(record.containsKey(input)){
record.put(input,record.get(input)+1);
}else{
record.put(input,1);
}
}
int maxCount = 0;
for(int value : record.values()){
if(maxCount<value) maxCount = value;
}
List<String> names = new ArrayList<>();
for(String key : record.keySet()){
if(record.get(key)==maxCount) names.add(key);
}
Collections.sort(names);
bw.write(names.get(0));
bw.flush();
}
}
containsKey로 확인 안해주고 getOrDefault를 써도 된다.
import java.util.*;
class Main
{
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Map<String, Integer> titles = new HashMap<String, Integer>();
for (int i = 0; i < N; i++) {
String title = sc.next();
titles.put(title, titles.getOrDefault(title, 0) + 1);
}
String maxTitle = "";
int maxCount = 0;
for (Map.Entry<String, Integer> title : titles.entrySet()) {
if (title.getValue() > maxCount ||
(title.getValue() == maxCount && title.getKey().compareTo(maxTitle) < 0)) {
maxTitle = title.getKey();
maxCount = title.getValue();
}
}
System.out.println(maxTitle);
}
}
'Problem Solving > 정렬' 카테고리의 다른 글
BOJ2910 빈도 정렬 (0) | 2024.02.06 |
---|---|
BOJ18870 좌표압축 (0) | 2024.02.06 |
BOJ 7785 회사에 있는 사람 (1) | 2024.02.06 |
BOJ10814 나이순 정렬 (0) | 2024.02.05 |
BOJ1181 단어 정렬 (0) | 2024.02.05 |