본문 바로가기

hash2

[python] 프로그래머스 코딩테스트 연습 HASH level3 (기록용) 오랜만에 코딩테스트 문제를 풀어봤다.. 직장동료가 이직준비를 하면서 갑자기 이거 풀어보라고 URL을 던져서.. 결론부터 말하면 다행히 푸는데 성공했다...ㅎㅎ (쉬운문제이긴함...) 문제 설명 더보기 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번.. 2021. 6. 29.
[기본 java]#1 배열과 문자열 그리고 해시테이블 코딩테스트 준비 #1 자료구조 해시테이블 효율적인 탐색을 위한 자료구조로서 KEY를 VALUE에 대응시킴 아주 간단히 구현하는 경우, 배열과 해시함수만 있으면 됨 단 KEY에 대해서 해시 함수가 계산해 내는 정수값이 UNIQUE해야 함 UNIQUE를 고려하려면 배열을 크게 만들어야 하는데, 여기서 배열을 줄일 수 있는 방법은 hash(key)%array_length 위치에 연결리스트(linked list)형태로 저장하면 됨 단 이 경우 키 값을 갖는 객체를 찾아내려면 해당 키에 대한 연결리스트를 재 탐색 해야한다. 이때 이진 탐색 트리(binary search tree)를 사용해 해시 테이블을 구현할 수도 있는데 이렇게 하면 O(log n)시간 안에 탐색이 완료 되도록 할수 있다. 1. 간단한 hash테.. 2021. 5. 17.