해시(15)
-
해시(Hash) 알고리즘 쉽게 이해하기
자세한 내용은 영상으로 확인하세요! :) 프로그래밍을 배우다 보면 많은 분들이 해시(Hash) 알고리즘에 대해 질문하고 헷갈려합니다. 그만큼 자주 나오는 개념이지만 쉽게 이해하기 어려운 부분도 있습니다. 오늘은 코딩 테스트를 준비하는 분들이 꼭 알아야 할 해시 개념에 대해 정리해 보겠습니다. 해시(Hash)란 무엇인가?해시는 키(Key)와 값(Value) 형태를 갖는 하나의 자료 구조입니다. 예를 들어, 전화번호부를 생각해봅시다. 우리가 친구의 전화번호를 찾기 위해 이름을 입력하면 해당 친구의 전화번호가 나옵니다. 여기서 이름이 키(Key)이고, 전화번호가 값(Value)입니다. 해시가 등장하기 전에는 배열(Array)이라는 자료 구조만 사용했습니다. 배열은 오직 정수로만 접근할 수 있기 때문에, 문자열..
2024.06.20 -
[백준 9375] 패션왕 신해빈 (실버 3) 문제 풀이- 자바 Java Hash 해시
0. 자세한 설명은 YouTube 영상으로 1. 해시 풀이 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { // 0. 입력 및 초기화 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int T = Integer.parseInt(br.readLine()); for(int tc = 0; tc < T; tc++){ // 1. N개의 옷 입력 받기..
2023.01.28 -
[백준 1620] 나는야 포켓몬 마스터 이다솜(실버 4) 문제 풀이- 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 해시를 활용한 풀이 # 0. 입력 및 초기화 import sys input = sys.stdin.readline N, M = map(int, input().split()) # 1. N개의 정보를 hash에 반영 idx_to_name = {} name_to_idx = {} for i in range(1, N + 1): name = input().rstrip() idx_to_name[i] = name name_to_idx[name] = i # 2. M개의 쿼리를 해시를 통해 출력 for _ in range(M): query = input().rstrip() if query.isdigit(): print(idx_to_name[query]) else: print(..
2023.01.26 -
[백준 1764] 듣보잡 (실버 4) 문제 풀이- 자바 Java 해시
0. 자세한 설명은 YouTube 영상으로 1. 해시를 활용한 풀이 import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { // 0. 입력 및 초기화 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); StringTokenizer st = new StringTokenizer(br.readLine()); int N = Integer.parseInt(st..
2023.01.14 -
[백준 10816] 숫자 카드 2(실버 4) 문제 풀이- 파이썬 python
0. 자세한 설명은 YouTube 영상으로 1. 해시를 활용한 풀이 import sys # 0. 입력 및 초기화 input = sys.stdin.readline N = int(input()) a = map(int, input().split()) # 1. hash에 num 개수 반영 hash = {} for num in a: hash[num] = hash.setdefault(num, 0) + 1 # 2. hash에서 num 개수 출력 M = int(input()) b = map(int, input().split()) for num in b : print(hash.setdefault(num, 0), end = ' ') 2. 배열을 활용한 풀이 import sys input = sys.stdin.readlin..
2023.01.12 -
[2022 카카오 코딩테스트] 신고 결과 받기 - 자바 java (Hash, 해시)
0. 자세한 설명은 YouTube 영상으로 1. Hash를 활용한 solution import java.util.*; class Solution { public int[] solution(String[] id_list, String[] report, int k) { int[] answer = new int[id_list.length]; // 1. 중복 제거 HashSet reportSet = new HashSet(); for (String rep : report) reportSet.add(rep); // 2. report에서 각 사람이 신고당한 횟수를 countHash으로 정의하기 HashMap notifyListHash = new HashMap(); for (String rep : reportSet){..
2022.02.16