////////
Search
🌱

이소영

해시

데이터를 다루는 기법 중 하나로, 검색과 저장을 빠르게 할 수 있음
해시가 데이터를 검색할 때 빠른 이유가 무엇인가요?
Key와 Value가 한 쌍으로 존재하고, Key값을 이용해서 빠르게 검색할 수 있기 때문

폰켓몬

HashMap

import java.util.HashMap; public class Solution { // 폰켓몬 public static void main(String[] args) { // int[] nums = {3,1,2,3}; // int[] nums = {3,3,3,2,2,4}; int[] nums = {3,3,3,2,2,2}; System.out.println(solution(nums)); } private static int solution(int[] nums) { int answer = 0; int n = nums.length/2; HashMap<Integer, Integer> hash = new HashMap<>(); for (int i = 0; i < nums.length; i++) { hash.put(nums[i], hash.getOrDefault(nums[i], 0)+1); } // System.out.println(hash); if(hash.size() >= n) { answer = n; } else { answer = hash.size(); } return answer; } }
Java
복사

HashSet

import java.util.HashSet; public class Solution { // 폰켓몬 public static void main(String[] args) { // int[] nums = {3,1,2,3}; // int[] nums = {3,3,3,2,2,4}; int[] nums = {3,3,3,2,2,2}; System.out.println(solution(nums)); } private static int solution(int[] nums) { int answer = 0; int n = nums.length/2; HashSet<Integer> hash = new HashSet<>(); for (int i = 0; i < nums.length; i++) { hash.add(nums[i]); } if(hash.size() >= n) { answer = n; } else { answer = hash.size(); } return answer; } }
Java
복사

완주하지 못한 선수

import java.util.Arrays; import java.util.HashMap; public class Solution { // 완주하지 못한 선수 public static void main(String[] args) { // BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] participant = {"leo", "kiki", "eden"}; String[] completion = {"eden", "kiki"}; System.out.println(solution(participant, completion)); } private static String solution(String[] participant, String[] completion) { String answer = ""; Arrays.sort(participant); Arrays.sort(completion); HashMap<String, Integer> map = new HashMap<>(); for (String p : participant) { map.put(p, map.getOrDefault(p, 0) + 1); } for (String p : completion) { map.put(p, map.get(p) - 1); } for (String key : map.keySet()) { // map.keySet() if(map.get(key) != 0) { answer = key; } } return answer; } }
Java
복사