728x90
반응형

분류 전체보기 155

20200916

오늘은 hiring assessment for basic computer science 를 진행했다. 지난 ha와 마찬가지로 쉽게 풀 수 있는 문제와 난이도 있는 문제가 공존했다. 약간 고등학교때 수학문제집 푸는 기분을 느꼈다. 9월 16일 (수) Today I Learned 오늘은 ha를 진행하였다 yarn.lock 때문에 제출이 되지 않는 문제가 있었다 이전에 같은 문제를 겪은 적이 있어서 혹시나 하고 접근했는데 다행히 삭제만 하는 것으로 패스되었다 Tomorrow I'll Learn 솔로윜동안 뭘해야할까? 고민을 좀 해야할 거 같다.

Today I Learned 2020.09.16

[Data Structure] Trees - 트리구조

많은 자료구조 중에서 자주 사용되는 구조 중 하나는 트리구조이다. 어떤 웹사이트에서, 사이트맵 이라는 걸 본 적이 있다면 이해하기 쉽다. 또, 우리가 사용하는 PC를 폴더단위로 관리한다면, 더 이해하기가 쉽다. 따오기라는 폴더 안에는 꿩, 가마우지, 새폴더, 새 새폴더 라는 이름의 4개의 폴더가 있다. 하나의 부모 아래에 여러개의 자식이 있는 구조. 이게 트리구조 다. 우리가 자료를 찾거나 정리하기 위해 사용하는 자료구조 중에서 트리를 기반으로 한 다양한 구조가 있다. Binary Tree ( 이진 트리 ) 이진 트리는 하나의 부모가 가질 수 있는 자식의 수가 최대 2개인 트리를 말한다. Full Binary Tree ( 포화 이진 트리 ) 포화 이진 트리는 모든 부모노드가 두 개의 자식노드를 가지고 있..

Algorithm 2020.09.16

[Algorithm] N-Queens, N 퀸즈, N개의 여왕, N 여왕

DFS ( Depth-first search ) 의 꽃인 N queens 를 구현하였다. 물론 자의로 주어진 스켈레톤에 구현하였고, 타의로 내 레포지토리에 하나가 쌓이게 되었다. 우선 N queens를 구현하기에 앞서, BFS 와 DFS를 모른다면 이 링크를 통해 개념 정도는 숙지를 해두자. [Algorithm] BFS, DFS - 너비우선탐색, 깊이우선탐색 BFS와 DFS는 탐색에서 대조적으로 설명하는 대표적인 두가지 방법이다. BFS와 DFS의 중간 그 어딘가에는 Heuristic ( 휴리스틱 ) 함수를 사용한 A* search ( 에이스타 서치 ) 등이 존재한다. 오늘은 BFS와 DFS dev-gp.tistory.com Backtracking ( 백트래킹, 퇴각검색 ) 백트래킹은 한정 조건을 가지는..

Algorithm 2020.09.15

[Algorithm] Dijkstra's algorithm - 다익스트라 알고리즘

BFS는 가중치가 없는 균일 그래프에서 최단경로를 계산하는 반면, 다익스트라 알고리즘은 가중치가 있는 그래프에서 최단 거리를 계산하는 데 사용된다. 아래 그림은 균일 그래프이다. 1번 vertex에서 출발하여 4번 vertex에 도착하기까지의 최단경로는 A, B 둘 중의 하나이다. 그렇다면 가중치가 있는 경우는 어떨까? 아까의 A경로 혹은 B경로 모두 7이라는 가중치를 가진다. 그런데, 우리는 직관적으로 더 짧은 길이 있음을 알 수 있다. 아래 그림의 화살표를 따라 이동하면, 가중치 6만에 도착할 수 있다. 대체 가중치가 뭐길래? 쉽게 이해하자. 1번은 서울이고, 4번은 부산이다. 2번은 울산이고, 3번은 대전이다. 그래프의 간선에 표기된 가중치는, 현실 시간으로 30분이라고 가정하자. 서울에서 부산까지..

Algorithm 2020.09.15

20200914

블로그 내용을 조금 더 알차게 쓸 필요가 있다. TIL도 오늘 뭐 했다 정도가 아니라, 다른 카테고리에 작성하는 정도가 좋을까. 잘 모르겠다. 조금 더 고민해볼 내용. 9월 14일 (월) Today I Learned 오늘은 n queens에 대해 공부하였다 n queens 는 대표적인 DFS 문제이다 유효성 검사를 통해 DFS의 비효율을 조금 개선할 수 있다 ( 백트래킹 ) 체스판이다보니 y축 대칭을 이루므로 최대 n/2 + 1 번 실행하는 것으로 모든 경우를 파악할 수 있다 2, 3 의 경우는 결과가 0이다 Tomorrow I'll Learn n queens 마무리

Today I Learned 2020.09.14

[Data Structure] Graph - 그래프

그래프는 자료의 관계도에 주로 사용되는 자료구조이다. 가장 대표적인 예는 역시 싸이월드 페이스북 친구이다. 나와 친구의 관계를 가중치1이라고 한다면, 친구의 친구는 가중치2 정도로 두고, 친구의 친구의 친구는 가중치3정도로 두는 것이다. 그러면 나를 기준으로 가중치가 1인 사람은 가장 가까운 사람들이고, 가중치가 2인 사람들은 그 다음으로 가까운 사람들이고, 3정도의 가중치는 내 친구와 그 사람의 친구가 서로 친구인 경우니까 그냥 남이다. Graph 그래프는 이전의 링크드리스트에서 보던 노드라는 개념을 가져와서 사용한다. 다른 점이 있다면, 실제로 그래프에서는 노드 대신 Vertex ( 점 ) 와 Edge ( 간선 ) 을 사용한다. ( 참고로 vertex의 복수형은 vertices 이다 ) 그래프에는 방..

Algorithm 2020.09.14

[Algorithm] BFS, DFS - 너비우선탐색, 깊이우선탐색

BFS와 DFS는 탐색에서 대조적으로 설명하는 대표적인 두가지 방법이다. BFS와 DFS의 중간 그 어딘가에는 Heuristic ( 휴리스틱 ) 함수를 사용한 A* search ( 에이스타 서치 ) 등이 존재한다. 오늘은 BFS와 DFS에 대한 간략한 설명과, 트리구조에서 어떤 방식으로 접근하여 사용하는 지 이야기해보자. BFS ( Breadth-First Search, 너비 우선 탐색 ) BFS는 시작점에서 출발하여 종점에 도착할 때 까지 시작점으로부터 같은 거리에 있는 좌표 혹은 노드를 가장 먼저 탐색한다. 위 그림에서 왼쪽의 grid는 start로부터 end까지 도달하기 위해 BFS가 동작하는 모습을 단편적으로 보여준다. 마찬가지로 오른쪽의 트리에서 루트로부터 end에 도달할 때까지 거리가 가까운 ..

Algorithm 2020.09.13

20200912

힘든 날이었다. 열도 조금 있고, 감기기운도 있고... 이번 주말의 키워드는 휴식으로 정하자 9월 12일 (토) Today I Learned 오늘은 카카오 코딩테스트에 도전했다. 작년에는 손도 못대고 구경만 하다가 금방 껐는 데, 이번에는 접근법을 고민하고 있는 스스로를 발견했다. 조금이라도 성장하고 있다는 기분을 느꼈다. 자바스크립트의 퍼포먼스 한계를 경험했다. Tomorrow I'll Learn 쉬자

Today I Learned 2020.09.12
728x90
반응형