분류 전체보기

Algorithm/problem solving

Today's Algorithm(2019-02-06)

programmers. 프렌즈4블록 이런 구체적인 상황이 있는 문제를 좋아하는데 시간은 꽤 오래걸렸습니다.. 그 이유를 생각해보면 다음과 같습니다. 새로운 클래스를 새로 만들어야할지, 여기에 어떤 상태값을 만들어야할지 충분히 고려하지 않고 문제를 푼 바람에 우왕좌앙 했습니다. 그러다보니 이를 담는 자료구조도 몇번 바꾸고, 또 막상 만들어놓고 필요없는 경우도 있었습니다. 좀더 고민하고 문제를 푸는 것이 더 시간 절약에 효과적일 것 같습니다. 블록을 담는 자료구조에 순서를 잘못 담았습니다. 밑에부터 담아야하는데 위로부터 담았네요. List를 여러개 다루면서 각각의 인덱스가 무엇을 의미하는지, 제가 의도하는 인덱스를 정확하게 파악하는데 조금 시간이 걸렸습니다. 이 문제에서 가장 고민되었던 부분은 '동시..

Thoughts

오늘 든 생각(2019-02-06)

최근 2017년 Kakao Blind Recruitment 1차 문제 4개와 카카오페이 인턴 코딩테스트를 보면서 뭔가 느낀 점이 있습니다. 그건 제가 알고있던 알고리즘 개념이 크게 필요하지 않다는 점입니다. 굳이 뽑자면 BFS인데 사실 큰 개념도 아니고 깨닫지 않고 있을 뿐 BFS방식으로 푸는 분들도 많이 있을거라 생각합니다. 그리고 또 다른 느낀 점은 크게 어렵진 않지만 시간이 좀 걸린다는 것입니다. 결국은 꼼꼼하고 정확하게, 그리고 빠르게 푸는 것이 중요하다는 것을 깨닫게 되었습니다. 이렇게 출제하는 이유를 생각해보면 회사는 알고리즘 개념을 알아서 바로 풀 수 있는 사람보다는 구현력을 더 보기 위해서 그런 것이라 생각합니다. 그렇게 생각해보면 전략적으로 코딩테스트를 대비하기 위해 해야하는 것이 무엇인..

Algorithm/problem solving

Today's Algorithm(2019-02-05)

programmers. 캐시 문제를 푸는 조건 중 하나인 LRU를 알면 크게 어렵지 않은 문제입니다. LRU는 사실 운영체제에서 나오는 개념인데요. 이에 대해서 간략하게 설명드려볼게요. 음.. 컴퓨터 내 처리 작업에서 가장 시간 많이 사용하는 작업이 입출력 작업입니다. 그렇기 때문에 그 시간을 줄이고자 데이터를 처리하는 곳과 데이터가 저장된 곳 사이에 캐시라는 저장소를 두어 자주 사용되는 데이터들을 저장해둡니다. 하지만 캐시라는 저장소는 유한한 공간이 아니기 때문에(만약 중간에 있다고 공간을 늘려버리면 결국 데이터가 저장된 곳과 같은 곳이 되어버릴 것입니다) 어떠한 규칙에 의해 새로 보관되는 데이터, 버려지는 데이터가 구분되어야 할 것입니다. LRU는 그러한 규칙 중 하나로 Least Recently U..

CS

Sync Async Block Non-Block

Sync Async Block Non-Block Sync, Async / Blocking, Non-Blocking Introduction 보통 입출력에서(네트워크 통신 포함) 많은 시간과 비용이 소요됩니다. 그렇기 때문에 이것을 어떻게 처리할 것에 대해 논의하면서 이 주제가 부각되었습니다.C10K 문제와도 관련이 있는데요. 하나의 서버에서 1만명의 클라이언트를 처리할 수 있는가입니다. 멀티쓰레드에서 쓰레드 수가 그만큼 있다고 해도 메모리가 너무 많이 차지하고 문맥 교환비용이 많이 발생하기 때문에 힘듭니다. 블록킹과 논블록킹의 구분은 비교적 명확하지만 동기, 비동기의 구분은 명확하진 않은 편입니다. 호출하는 함수가 제어권을 가지고 있는지 유무 → blocking, non-blocking 호출되는 함수의 완..

CS

TCP/IP

Today's Dev Notes(2019-01-28) TCP / IP 인터넷에 사용되는 각종 표준 프로토콜의 집합 네트워크 컴퓨터들이 서로 정보(데이터)를 주고 받을 수 있도록 연결된 통신망 TCP/IP 4계층 택배를 부치는 것에 비유할 수 있습니다. 프로토콜 오른쪽에 명시하였습니다. 프로토콜마다 헤더가 존재하며 애플리케이션 → 트랜스포트 → 인터넷 → 네트워크 헤더가 붙어 보내어졌다면 받는 쪽에서는 이 역순으로 헤더를 받아 해석하게 됩니다. 물건을 보낸다(애플리케이션 계층) : HTTP, SMTP, DNS 포장한다(트랜스포트 계층) : TCP, UDP 송장을 붙인다(인터넷 계층) : IP 부친다(네트워크 인터페이스 계층) : Ethernet 계층으로 왜 나누는 것일까(Layered Architectur..

Algorithm/concepts

Tree

트리란? 부모-자식 관계로 정의하고, 부모에서 자식으로 간선이 이어져있는 유향 그래프를 의미합니다. 트리는 그래프에 속합니다. 용어 노드(node): 트리를 구성하는 기본 원소 루트 노드(root node/root): 트리에서 부모가 없는 최상위 노드, 트리의 시작점 부모 노드(parent node): 루트 노드 방향으로 직접 연결된 노드 자식 노드(child node): 루트 노드 반대방향으로 직접 연결된 노드 형제 노드(siblings node): 같은 부모 노드를 갖는 노드들 리프 노드(leaf node/leaf/terminal node): 자식이 없는 노드 경로(path): 한 노드에서 다른 한 노드에 이르는 길 사이에 있는 노드들의 순서 길이(length): 출발 노드에서 도착 노드까지 거치는 ..

Brad Lee
'분류 전체보기' 카테고리의 글 목록 (8 Page)