Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 코딩테스트
- jsp내장객체
- 노드
- addEventListener
- Array
- 포워드
- HTTP
- HTML
- 문자열
- innerHTML
- debugging
- 노드 삭제
- 노드 객체
- javascript
- Servlet
- 리다이렉트
- eventlistener
- 노드 replace
- webprogramming
- backend
- 노드 추가
- 자바스크립트
- 이벤트
- HtmlElement
- 이벤트 핸들러
- 파이썬 코테
- Object
- Web
- element
- 자바스크립트 이벤트
Archives
- Today
- Total
seoyoung.dev
[ch11]해시 테이블 본문
[ 파이썬 알고리즘 인터뷰_알고리즘 스터디 리뷰 ]
* 해시 테이블(해시 맵)
: 키를 값에 매핑할 수 있는 구조
- 해시 함수
: 임의의 크기의 데이터를 고정 크기의 값으로 매핑하는 데 사용할 수 있는 함수
= 해싱 : 해시 함수를 사용해 해시 테이블에 인덱싱하기 위한 것
* 동일 키 값 - 충돌 발생
1. Separate Chaining
: 연결 리스트로 연결
2. Open Addressing
: 충돌 발생 시, 테이블 공간 내 탐사를 통해 빈 공간을 찾아 해결한다.
ex) 빈도 요소 순에서 상위 k 번째 요소
import collections
nums = [1,1,1,2,2,3]
k = 2
count = collections.Counter(nums)
print(count)
print(
list(zip(*count.most_common(k)))[0] #--zip 함수 와 아스테리스크(*)
)
* zip 함수
# 2개 이상의 시퀀스에서, 짧은 길이를 기준으로
# 일대일 대응하는 새로운 튜플 시퀀스 생성
a = [1,2,3,4,5]
b = [2,3,4,5]
c = [3,4,5]
list(zip(a,b))
# [(1, 2), (2, 3), (3, 4), (4, 5)]
d = list(zip(a,b,c))
# [(1, 2, 3), (2, 3, 4), (3, 4, 5)]
d[0][0] = 0 # tuple 요소는 수정 불가, Typeerror 발생
* 아스테리스크(*)
: Unpack 의 역할로, 주로 튜플이나 리스트를 언패킹하는 데 사용한다.
cc = ['a','b','c','d']
print(*cc)
def func(*params):
print(params)
func('aa','bb','cc')
* Counter 객체 간 덧셈,뺄셈 가능
# 프로그래머스 - 해시
from collections import Counter
participant = ['m','s','m','a']
completion = ['s','a','m']
p = Counter(participant)
c = Counter(completion)
res = p-c
key = list(res.keys())[0]
# completion 에 없는 m 1개 리턴
'TIL > Python' 카테고리의 다른 글
[ch10]데크,우선순위 큐 (0) | 2021.08.03 |
---|---|
[ch09]스택,큐 (0) | 2021.07.31 |
[ch_08]연결리스트 (0) | 2021.07.28 |
[ch_07]배열 (0) | 2021.07.23 |
[ch06]문자열 조작 (0) | 2021.07.18 |