Algorithm/백준 알고리즘
백준_1302 베스트셀러(자바) / 문자열
미스터로즈
2021. 7. 7. 19:03
시간&메모리 제한

문제

입력&출력

문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
public class Back_1302 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
HashMap<String,Integer> hm = new HashMap<String, Integer>();
int max = Integer.MIN_VALUE;
for (int i = 0; i < N; i++) {
String tmp = br.readLine();
if(hm.containsKey(tmp)) {
hm.replace(tmp, hm.get(tmp)+1);
}else {
hm.put(tmp, 1);
}
}
for(String tmp : hm.keySet()) {
max = Math.max(max, hm.get(tmp));
}
ArrayList<String> arr = new ArrayList<String>(hm.keySet());
Collections.sort(arr);
for(String tmp : arr) {
if(hm.get(tmp) == max) {
System.out.println(tmp);
break;
}
}
}
}
- 이 문제의 경우 문자열을 이용해서 해결하는 문제였습니다.
- 각각의 책의 제목을 담는 동시에, 팔린 책의 수를 체크해야 합니다.
- 따라서, HashMap을 이용해서 문제 해결을 했습니다.
- HashMap Key에는 String으로 책의 제목을 받고, Value에는 Integer로 팔린 수를 넣었습니다.
- 팔린 책의 수의 최댓값을 구한뒤, 그에 맞는 책의 제목을 찾았습니다.