programmers.co.kr/learn/courses/30/lessons/42579?language=python3 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr dic : 장르별 재생 횟수가 저장된 딕셔너리 -> {'classic': 1450, 'pop': 3100} -> 정렬 후 [('pop', 3100), ('classic', 1450)] album : 장르별 노래의 재생된 횟수와 고유번호가 저장된 딕셔너리 -> {'classic': [[500, 0], [150, 2], [800, 3]], 'pop..
해시 테이블 (Hash Table) hash 함수를 통해 key를 해시 코드로 변환하고, 이 해시코드로 인덱스를 계산해 value에 접근한다. hash function : 해시 코드로 변환하는 함수 Hash Function 1. 나눗셈 법 h(k) = k mod m 입력받은 key의 각 문자를 유니코드로 변환 후 HashMap의 size로 나눈 나머지 값으로 사용한다. m은 HashMap의 크기이며 소수를 사용한다. (2의 제곱수와 거리가 먼 소수) 2. 곱셈 법 h(k) = (kA mod 1) * m k는 숫자로 된 키, 0 < A < 1 m은 중요하지 않으며 보통 2의 제곱 수로 정한다. 나눗셈 법보다는 느리고 2진수 연산에 최적화된 컴퓨터 구조를 고려한 해시함수이다. 3. Universal Hash..
https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 programmers.co.kr def solution(clothes): answer = 1 clothe = {} for i in range(len(clothes)): if clothes[i][1] not in clothe: clothe[clothes[i][1]] = 1 else: tmp = clothe[clothes[i][1]] tmp += 1 clothe[clothes[i][1]] = tmp for c in clothe: answer *= (clothe[c] + 1) answer -= 1 return answer