728x90
반응형

해시 테이블 3

[Baekjoon 9375 / Python / 실버3] 패션왕 신해빈

수학, 조합론, 해시 테이블 문제이다.문제 자체는 단순하고 금방 해결할 수 있을 것 같지만 나에겐 의외로 힘들었다. 수학을 잘 하는 사람이라면 금방 풀 것 같다. # 수학, 조합론, 해시 테이블import sysinput = sys.stdin.readline# 테스트 케이스 개수만큼 반복N = int(input())for _ in range(N):    n = int(input()) # 의상 개수    clothes = {}    # 의상 입력받기, 의상 이름은 필요가 없음    for _ in range(n):        _, category = input().split()        clothes[category] = clothes.get(category, 0) + 1 # 의상 종류 증가시키기  ..

Algorithm/Math 2024.10.01

[Baekjoon 11652 / Python / 실버4] 카드

import sysinput = sys.stdin.readlineN = int(input()) # 카드 개수cards = {}for _ in range(N):    # 카드를 key로 등록하고 등장할 때마다 value를 1씩 증가시킨다    num = int(input())    if num in cards:        cards[num] += 1    else:        cards[num] = 1# items()를 붙여 튜플 형태로 변환한다. 딕셔너리를 정렬하기 위해 필요한 작업.# -x[1] : -를 붙이면 내림차순 정렬을 하게 된다.sortedCards = sorted(cards.items(), key=lambda x: (-x[1], x[0]))print(sortedCards[0][0]) 정렬..

Algorithm/정렬 2024.08.19

[크래프톤 정글 5기] week01 알고리즘 주차 여섯번째 날, 해시 테이블, 힙, 우선순위 큐, 이진 트리, 피보나치

해시 테이블(Hash Table)- 먼저 키(key)와 값(value)으로 구성된 데이터가 필요하다.- 여기서 “key”를 해시값으로 만들어, 해당 해시값을 “인덱스”로써 활용하여 테이블에 저장한다. 여기서 해시값은 정수 형태가 된다.- 데이터(value)를 해시하여 인덱스로 쓰는 거 아니냐는 사람들이 있는데, 이럴 경우 value가 같으면 인덱스가 중복될 수 있다. 해시함수는 같은 입력에 대해서 항상 같은 해시값을 만들기 때문이다.- 어떤 값을 찾든 O(1)의 복잡도를 가진다. 고유값으로 접근하면 되기 때문.- 해시 테이블에서 만들어진 원소를 버킷(Bucket)이라고 한다. 해시 테이블의 장/단점- 장점 : 자료의 검색, 읽기, 저장 속도가 빠르다. 즉 데이터 조회가 빠르다.- 장점 : 자료가 중복되는..

728x90
반응형