본문으로 건너뛰기

#data structure

4
FundamentalTILData structure

Graphs

Vertex를 연결하는 edge에 순서가 없는 pair로 표현되는 edge들로 이루어져있다. {v1,v2}를 edge라고 표현한다. 예를 들어 v1,v2,v3,v4,v5,v6,v7,v8,v9의 vertex가 있을 때 {v1,v2},{v3,v5},{v4,v7},{v4,v7}의 edge가 있으면 4개의 edge가 있다고 표현한다. 방향이 없기 때문에 v1에서 v2로 가는 edge, v2에서 v1로 가는 edge모두 있다고 본다. 자기 자신에서 자기 자신으로 가는 edge는 없다. V개의 vertext가 있는 방향이 없는 그래프에서 최대
FundamentalTILAlgorithm

알고리즘; 문자열 해싱 #1

교집합 슬라이딩 윈도우 참가자와 완주자의 명단에서 완주하지 못한 참가자를 가져온다. 두 리스트의 교집합을 증명하는 과정에서 완주자와 비교해 참가자를 반환한다 (완주하지 못한 참가자) 소스코드 리스트 내 원소에 대해 슬라이딩 윈도우로 비교하고 요구조건에 따라 boolean을 반환한다. 소스코드 첫번째 시도 : dictionary를 만든 후 set으로 원소 생성 → 실패 두번째 시도 : list 원소를 단순 조합하여 set으로 요구조건 원소 생성 → 테스트 케이스는 통과하지만 효율성에서 모두 탈락 세번째 시도 : 순서에 상관없는 조합(
FundamentalTILProblem solving

코딩테스트를 위한 파이썬 정리

알고리즘 스터디를 위해 파이썬에서 코딩테스트를 위해 자주 쓰이는 연산자와 내장함수 관련 내용을 간략하게 정리해봤다. 파이썬에서 나누기는 /와 //가 있다. 전자는 소수점을 표시하고 후자는 정수만을 생성한다. 파이썬의 제곱 연산자는
FundamentalTILData structure

LinkedList - Single

1) 일반적으로 배열을 사용하여 데이털르 순차적으로 저장하고, 나열할 수 있다. 2) 배열을 사용하는 경우 메모리 공간이 불필요하게 낭비 될 수 있다. 배열로 만들었으므로 특정 위치 원소에 즉시 접근 가능하다. 데이터가 들어갈 공간을 미리 메모리에 할당해야 하는 단점이 있다. 원하는 위치로 삽입이나 삭제가 비효율적이다. -> 주소를 당기고 밀어야하기 때문에. 연결 리스트는 구조체와 포인터를 함께 사용하여 구현한다. 연결 리스트는 리스트의 중간 지점에 노드를 추가하거나 삭제할 수 있어야 한다. 필요할 때마다 메모리 공간을 할당 받는다