본문 바로가기
728x90

개발새발8

[알고리즘] 시스템 설계 인터뷰 전에 알아둬야 할 알고리즘 나에게 알고리즘은 그저 이직을 준비할 때마다 잠깐잠깐씩 공부하는 것 중 하나였다. 이직에 성공하면 다시 거들떠도 안보는... 연차가 쌓이며, 탄탄한 CS(Computer Science) 지식이 얼마나 중요한지 뼈저리게 깨닫고 있다. 인터뷰를 앞둔 사람 뿐만 아니라 Software Engineer 라면 알아두는게 좋은 알고리즘을 살펴보자. 나는 이 중에 1/3 도 모르는듯 하다. 열심히 공부하자 요니...☆ 알고리즘 중요도 사용되는 예시 참고 사이트 Geohash ⭐️⭐️⭐️⭐️⭐️ 위치기반 서비스 https://www.pubnub.com/learn/glossary/what-is-geohashing/ Quadtree ⭐️⭐️⭐️⭐️⭐️ 위치기반 서비스 https://engblog.yext.com/post/.. 2022. 8. 18.
[네트워크] TCP/UDP 개발자들이라면 OSI 7계층에 관하여 지겹도록 들었을 것이다. 그 중에서도 전송계층에 속하는 TCP/UDP 는 면접 질문에서도 빠지지 않는 단골손님인데 그 특징에 대해 정리해 보려고 한다. OSI 7계층 1계층은 물리 계층(Physical Layer) 이다. 이름에서부터 보이다시피 소프트웨어보다는 하드웨어에 가까운 계층이다. 전기 신호를 물리적으로 전송하는 기술에 대해 다루기 때문에, 전자공학이나 전기공학에 더 가깝다. 2계층은 데이터 링크 계층(Data Link Layer) 이다. 물리적으로 인접한 노드 간(node-to-node) 의 전송 기술을 다루는데, 이더넷(Ethernet) 이 대표적인 예이다. 노드 하면 그래프가 생각나겠지만, 이 때 노드는 근거리 통신망(LAN) 에서 연결된 다양한 컴퓨팅 .. 2021. 9. 30.
[정렬] 팀소트(Timsort) 정렬 알고리즘 중에서 가장 인기 있는 알고리즘은 존 논 포이만(John von Neumann) 이 설계한 병합 정렬(Merge Sort) 이다. 대부분은 퀵 정렬이 빠르지만 데이터에 따라 편차가 큰 반면, 병합 정렬은 일정하게 O(n log n) 의 안정적인 성능을 보이며, 무엇보다 안정 정렬(Stable Sort) 라는 점에서 많이 선호되는 편이다. 파이썬의 정렬은 팀소트(Timsort) 를 사용한다. 팀소트는 팀 피터스(Tim Peters) 가 피터 매킬로이(Peter Mcllroy) 의 1993년 논문을 기반으로 2002년도에 파이썬을 위해 C로 구현한 알고리즘으로, 창안자인 팀 피터스의 이름을 따 팀소트로 불린다. 팀소트는 애초에 학계에서 받아들여질 만한 우아한 알고리즘을 목표로 하기보다는, '실.. 2021. 9. 29.
[리눅스] 리눅스/레드햇/데비안 리눅스, 우분트, CentOS 등 같은듯 서로 다른 운영체제를 사용하면서 그 차이점이 뭔지 이제까지 궁금해하지도 않았고 정리를 해본적이 없는것 같아서 정리해 보려고 한다. 리눅스(Linux) 리눅스(Linux) 는 리누스 토르발스가 커뮤니티 주체로 개발한 컴퓨터 운영체제이다. 리눅스는 UNIX 운영체제를 기반으로 만들어진 운영체제로, 다중 사용자, 다중 작업(멀티태스킹), 다중 스레드를 지원하는 네트워크 운영 체제(NOS) 이다. 리눅스의 원형이 되는 UNIX 가 애초부터 통신 네트워크를 지향하여 설계된 것처럼 리눅스 역시 서버로 작동하는데 최적화되어 있다. 고로 서버에서 사용되는 운영체제로 많이 사용되고 있다. ※ 리눅스의 특징 1. 리눅스는 UNIX 와 완벽하게 호환가능하다. 2. 리눅스는 공개 운영.. 2021. 9. 23.
[자료구조] 스택(Stack) / 큐(Queue) 스택(Stack), 큐(Queue) 등은 자료구조에서 선형 구조라 한다. 선형 구조란 자료를 구성하고 있는 데이터들이 순차적으로 나열시킨 형태를 의미한다. ■ 스택 (Stack) 스택이란 쌓아 올린다는 것을 의미한다. 따라서 탑처럼 차곡차곡 쌓아 올린 형태의 자료구조를 말한다. 예를 들어 원형 통 과자에 마지막에 담긴 과자가 제일 먼저 꺼내지는 것처럼 스택 구조는 입구와 출구가 같아 마지막에 들어온 것이 가장 먼저 나간다 하여 후입선출(LIFO, Last-In-First-Out)법 이라고 한다. ※ 스택의 특징 스택의 입력과 출력은 맨 위에서만 일어나기 때문에, 스택의 중간에서는 데이터를 삽입하거나 삭제할 수 없다. 스택 구조의 맨 위를 가리키는 top 이라는 변수가 존재하며, 입력과 출력이 이루어지는 .. 2021. 4. 20.
[자료구조] 힙(Heap) ■ Heap 힙(heap)은 완전 이진 트리(Completable Binary Tree) 를 기본으로 한 자료구조 (tree-based structure) 시간복잡도 : O(logn) 완전 이진 트리의 일종으로 우선순위 큐를 위하여 만들어진 자료구조이다. 여러 개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조이다. 힙은 일종의 반정렬 상태(느슨한 정렬 상태)를 유지한다. 큰 값이 상위 레벨에 있고 작은 값이 하위 레벨에 있다는 정도 간단히 말하면 부모 노드의 키 값이 자식 노드의 키 값보다 항상 큰(작은) 이진 트리를 말한다. 힙 트리에서는 중복된 값을 허용한다. (이진 탐색 트리에서는 중복된 값을 허용하지 않는다.) ※ 힙의 특징 일반적으로 배열을 사용하여 구현한다.배열에 트리의.. 2021. 4. 20.
728x90
반응형