본문 바로가기

Algorithm/이론

(3)
[알고리즘] 비트연산자, 비트마스킹 https://blog.naver.com/kks227/220787042377 비트마스킹(Bit Masking) 이번에 쓸 글은 꼭 알고리즘이라고 하기는 뭣한, 테크닉이나 도구라고 봐야 할 듯 싶습니다.비트마스크(Bi... blog.naver.com 카카오 모의 코딩테스트 탈탈 털린 후 정리하면서 쓰는 포스팅! 배움의 길은 멀고도 험하다.. 아무튼 전부터 공부해봐야지 맘먹고 있던 비트마스킹 아직 많은 알고리즘들을 공부해보지 않아서 비트마스킹의 쓰임새에 대해 다 알 순 없지만, 순열, 조합 등의 문제에 쓰면 좋을 것 같다(일단 내가 아는 범위 내에선) 1,0 값을 가지는 N사이즈 배열이 필요할 때, 배열 대신에 N비트의 정수를 사용해 각 비트에 값을 저장한다는게 컨셉이다. 평소에는 그냥 배열로 써도 크게 상..
[알고리즘] 그래프 DFS, BFS를 공부하기 전 먼저 그래프에 대해 간략하게 정리하고자 한다. 그래프란, 위 그림과 같이 정점(vertex)과 간선(edge)로 이루어진 자료구조이다. 간선은 정점의 ordered pair로 표현한다. 예를들어 (u,v)는 u에서 v로 향하는 간선을 뜻한다. 그래프는 무방향 그래프(undirected graph)와 방향 그래프(directed graph)로 나뉘어진다. 방향 그래프에서 간선은 방향성을 가지고 있으며, 화살표 모양으로 표현된다. directed graph에서는 self-loop(자기 자신에서 자기 자신을 가리키는 간선)도 가능하다. 1. Adjacency 간선 (u,v)가 있을 때, 정점 v를 정점 u의 adjacency라고 한다. undirected graph에서는 인접 관..
[알고리즘] Linked List(연결 리스트) https://kks227.blog.me/220781402507 리스트(List), 배열(Array), 연결 리스트(Linked List) 오랜만입니다. 논문 읽다가 멘붕이 와서 빠르게 글 씁니다.원래는 이번 차례에 DFS를 강의하려고 했으나... blog.naver.com (이분 블로그를 정리하기 위해 쓰는 글입니다.) list란 선형적으로 값을 가지고 있는 자료구조이다. linked list란 배열과 같이 어떤 자료구조를 구현하는 프로그래밍 기법이다. linked list나 배열을 이용해서 list를 구현할 수 있으며, 두 방법 모두 각각의 장단점을 가지고 있다. 배열로 구현할 때 장점: 랜덤 액세스가 가능하다(O(1)의 시간복잡도) 단점: 삽입, 삭제 연산이 오래걸린다(삽입, 삭제 연산하는 위치 뒤..