728x90
반응형
▶️백준
https://www.acmicpc.net/problem/1157
Map, HashMap, Entry를 적절히 사용하며 문제 풀기 완료!
해당 백준 문제를 풀면서 Map.Entry 인터페이스 내 메서드를 공부할 수 있었다.
-- Map<K, V> 로 이루어진 인터페이스
Map.Entry 인터페이스 주요 메서드
Method | Description |
Object getKey() | Entry의 key 객체 반환 |
Object getValue() | Entry의 value 객체 반환 |
boolean equals(Object o) | 동일한 Entry인지 비교 |
int hashCode() | Entry의 해시코드 반환 |
Object setValue(Object value) | Entry의 value 객체를 지정된 객체로 변경 |
Map 주요 메서드
Map 인터페이스를 구현한 클래스는 HashMap, Hashtable, TreeMap, SortedMap 등이 있다.
Method | Description |
put(Object key, Object value) | 주어진 키로 값을 저장하는 메서드 - 새로운 키일 경우 null 리털 - 동일한 키일 경우 기존 값 대체하고 이전 값 리턴 |
get(Object key) | 주어진 키에 해당하는 값 리턴 |
size() | 저장된 Entry 객체의 총 개수 리턴 |
containsKey(Object key) | 주어진 키가 있으면 true, 없으면 false 반환 |
containsValue(Object value) | 주어진 값이 있으면 true, 없으면 false 반환 |
isEmpty() | 컬렉션이 비어있는지 확인 비어있으면 true, 비어있지 않으면 false 반환 |
keySet() | 모든 키를 Set 객체에 담아 리턴 |
entrySet() | 키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아 리턴 |
clear() | 모든 Map.Entry 객체 삭제 (키, 값 모두 삭제) |
remove(Object key) | 주어진 키와 일치하는 Map.Entry 객체를 삭제하고 값 리턴 - List : 인덱스 기준으로 관리 - Map : key로 객체 관리 |
List는 인덱스 기준으로 관리하고 Map은 key로 객체들을 관리하기 때문에 key를 매개 값으로 갖는 메서드가 많다.
▶️답안
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char[] word = sc.nextLine().toUpperCase().toCharArray();
Map<Character, Integer> hm = new HashMap<>();
// 빈도수 체크
for (Character w : word) {
hm.put(w, hm.getOrDefault(w, 0) + 1); // 해당 key가 존재하면, 해당 key의 value + 1
}
int maxCount = 0;
char maxChar = '?';
for (Map.Entry<Character, Integer> entry : hm.entrySet()) {
if (entry.getValue() == maxCount) {
maxChar = '?';
} else if (entry.getValue() > maxCount) {
maxCount = entry.getValue();
maxChar = entry.getKey();
}
}
System.out.println(maxChar);
}
}
▶️ 참고
728x90
반응형
'Develop > Coding Test | Algorithm' 카테고리의 다른 글
[알고리즘] 유클리드 호제법 - 최대공약수 / 최소공배수 구하기 (0) | 2024.03.12 |
---|---|
[백준] JAVA풀이 - 1978 : 소수 찾기 (0) | 2024.03.11 |
[백준] JAVA 풀이 - 10811 : 바구니 뒤집기 (0) | 2024.02.13 |
[백준] JAVA 풀이 - 5597 : 과제 안 내신 분..? (0) | 2024.02.12 |
[백준] JAVA 풀이 -10951 : A + B - 4 (0) | 2024.02.10 |
댓글