코딩인터뷰 13

[코딩 인터뷰]자료구조 - 연결리스트 문제(Python)

[ 연결리스트] Python으로 노드와 연결리스트를 간단하게 구현했습니다. # 노드 class Node: def __init__(self, d): self.data = d self.next = None # 연결리스트 class LinkedList: def __init__(self, data): self.head = Node(data) def appendNode(self, data): now = self.head while now.next is not None: now = now.next now.next = Node(data) def appendNode2(self, node:Node): now = self.head while now.next is not None: now = now.next now.next..

[코딩 인터뷰]자료구조 - 배열과 문자열 문제(Python)

[ 중복이 없는가 ] 문자열이 주어졌을 때 이 문자열에 같은 문자가 중복되어 등장하는지 확인하는 알고리즘 예시) hi ⇒ True, hello ⇒ False(l이 2개) def isUniqueChars(string): char_set = set() for s in string: if s in char_set: return False else: char_set.add(s) return True 👀 set을 사용한 이유는 특정 원소를 검색하는 연산이 O(1)의 시간 복잡도를 가지기 때문입니다. dictionary도 검색 연산이 O(1)이지만 굳이 키 값을 넣을 필요는 없기 때문에 사용하지 set으로 사용했습니다. [ 순열 확인 ] 문자열 두 개가 주어졌을 때 이 둘이 서로 순열 관계에 있는지 확인하는 알고리..

[코딩 인터뷰]자료구조 - 배열과 문자열

[ 해시 테이블 ] : 효율적인 탐색을 위한 자료구조로서 키(key)를 값(value)에 대응 👀 구현 방식 1. 연결리스트와 해시코드함수 : 탐색 시간 O(1) 더보기 ✔️ 키와 값 삽입법 키의 해시 코드 계산 키의 자료형은 보통 int 혹은 long인데, 키의 개수는 무한한데 반해 int의 개수는 유한하기 때문에 서로 다른 두 개의 키가 같은 해시 코드를 가리킬 수 있습니다. 해시 코드를 이용하여 배열의 인덱스 계산 서로 다른 두 개의 해시 코드가 같은 인덱스를 가리킬 수도 있습니다. 키와 값을 해당 인덱스에 저장 배열의 각 인덱스에는 키와 값으로 이루어진 연결리스트가 존재합니다. 충돌에 대비해서 반드시 연결리스트를 이용해야합니다. ⭐ 충돌 : 서로 다른 두 개의 키가 같은 해시 코드를 가리키거나 서..

728x90