Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(HashMap, TreeSet(해쉬, 정렬지원 Set)_학급 회장_HashMap) 본문
알고리즘/인프런 - Java알고리즘 입문
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(HashMap, TreeSet(해쉬, 정렬지원 Set)_학급 회장_HashMap)
slow-walker 2023. 9. 29. 17:26
1. 학급 회장(해쉬)
예시 입력 1
15
BACBACCACCBDEDE
예시 출력 1
C
강의 풀이(Time: 159ms Memory: 27MB)
HashMap에 대한 이해가 필요하다.
- map.put(key,value) : map의 데이터 자료 생성
- map.get(key) : key에 해당하는 value값을 리턴
- map.getOrDefault(key, 0) : map 객체에 key가 있다면 value값을 가져오고, 없으면 0을 리턴
- map.keySet() : 존재하는 key를 전부 탐색 - for each에서 사용
- map.containsKey(key): 맵 객체에 해당하는 key가 존재하는지 확인 후 boolean 리턴
- map.size() : 존재하는 key의 개수를 리턴
- map.remove(key) : 특정 key를 삭제하면서 해당 key의 value값 리턴
import java.util.HashMap;
import java.util.Scanner;
public class Main {
public char solution(int n, String str) {
char answer = ' ';
HashMap<Character, Integer> map = new HashMap<>();
// x가 key값
for (char x : str.toCharArray()) {
map.put(x, map.getOrDefault(x, 0) + 1); // 너무 너무 중요함!!!
}
int max = Integer.MIN_VALUE;
for (char key : map.keySet()) {
// System.out.println(key + " " + map.get(key));
if (map.get(key) > max) {
max = map.get(key);
answer = key;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
String str = kb.next();
System.out.println(T.solution(n, str));
}
}
'알고리즘 > 인프런 - Java알고리즘 입문' 카테고리의 다른 글
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(Hash, sliding window_매출액의 종류) (0) | 2023.09.29 |
---|---|
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(HashMap, TreeSet(해쉬, 정렬지원 Set)_아나그램_HashMap) (0) | 2023.09.29 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(복합적 문제_최대 길이 연속부분수열) (0) | 2023.09.29 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(수학_연속된 자연수의 합) (0) | 2023.09.28 |
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비(two pointers_연속된 자연수의 합) (0) | 2023.09.28 |