목록Categories (1096)
KoreanFoodie's Study
언젠가부터, 프로포즈를 할때 다이아 반지를 건내는 것은 뭇 여성들의 로망으로 자리잡았다. 다이아몬드는 언제부터 영원한 사랑의 상징이 되었나. 때는 1947년. 남아공에서 시작한 주얼리 회사인 드비어스는 "A diamond is forever"이라는 광고 카피를 전 세계적으로 히트시키는 것에 성공했다. 광고계에서 전설로 남은 이 카피는, 다이아몬드가 영원한 사랑의 상징으로 자리잡는 일에 혁혁한 공헌을 했다. 물론 그 이전에도 다이아몬드는 고급진 사치품이긴 했지만. 대체 다이아몬드가 비싼 이유가 뭘까. 아, 물론 경제학에서 배우는 수요와 공급을 이야기하고 싶은 건 아니다. 그건 너무나 당연한 이야기이니까. 다만 그 수요가 어디서 창출되는지 궁금했을 뿐이다. 왜 다이아몬드는 비싸져야만 했을까. 경제학적인 관점..
머니덕 제테크 추천 도서 (도서 제목에 교보문고 링크를 걸어놓았음) : For Genie 1. 보도 섀퍼의 '돈' '돈' 이라는 게 무엇인지, '경제적 자유'란 무엇인지 구체적이고 현실적으로 고민하게 해주는 최고의 입문 서적. 1998년에 나온 책이 아직도 베스트셀러에 머무르고 있는 것에는 이유가 있다. 만약 재테크 도서로 단 한권만 고를 수 있다면 주저없이 고를 책. 2. 돈, 일하게 하라 슈퍼개미 투자자로서 투자 입문자가 쉽게 투자를 시작할 수 있도록 도와주는 책. 기본적 마인드셋과 투자의 당위성에 대해 설파한 도서. 3. 시골의사의 부자경제학 의사이자, 투자자로서도 성공한 박경철의 투자 철학에 관한 책. 투자에 대한 마인드셋 이외에도 한국 사회에서 재테크를 어떻게 할 것인지 현실적으로 짚어주는 점이..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 링크드 리스트 덧셈 (Add two numbers represented by linked lists) 링크드 리스트로 숫자가 주어졌을 때, 두 리스트를 더해 다음과 같은 리스트를 리턴하는 함수를 구현해 보자. 해당 함수는 재귀적으로 구현할 수도 있고, stack 을 이용해 구현할 수도 있다. 혹은, 링크드 리스트를 reverse 시킨 후, loop 을 돌려 덧셈을 해도 같은 결과를 구할 수 있다. 아래 코드는 링크드 리스트를 역전시킨 방식을 구현한 코드이다. #inc..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 링크드 리스트 스트링 비교 string 을 링크드 리스트로 표현했다고 했을때, 다음과 같이 스트링을 비교하는 함수를 구현해 보자. 단, 투 포인터를 이용하여 순회한다. #include #include #include struct Node { char data; Node* next; Node(char data) : data{data}, next{nullptr} {} }; struct List { List() : head{nullptr} {} void insert(cha..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 노드 삭제 (Linked List Node deletion) Singly Linked List 에서 노드를 삭제할 때는, 간단하게 이전 노드의 다음 노드를 현재 노드의 다음 노드와 연결시켜주기만 하면 된다(prev->next = cur->next). 혹은, prev 노드 하나를 이용해도 된다(prev->next = prev->next->next). void delete_node(int x) { if (!head) { std::cout data == x) { head ..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 링크드 리스트 정렬 삽입 (Linked List insert in sorted way) 정렬된 링크드 리스트에서, 삽입을 수행할 때 정렬된 상태를 유지하려면 어떻게 해야 할까? 1. 링크드 리스트가 비어 있을 경우 삽입되는 노드를 헤드로 만든다. 2. 원소가 하나일 경우, 삽입되는 노드를 헤드로 만들고 기존 헤드와 연결한다. 3. 원소가 여러 개일 경우, 순회를 하며 알맞은 위치에 끼워 넣는다. #include #include #include struct Node {..
네트워크의 구성 네트워크는 LAN 과 WAN 으로 구성된다. LAN 은 로컬 영역 네트워크이고, LAN 과 LAN 을 잇는 것을 WAN 이라고 한다. 보통 LAN 과 LAN 사이는 라우터를 이용해 연결한다. 스위치와 라우터 네트워크의 기본 구성은 스위치와 라우터에서 나온다. 스위치와 라우터는 둘 다 스위칭(통신을 연결된 포트로 연결해 주는 역할)을 수행하지만, 가장 큰 차이는, 브로드캐스팅을 막느냐 막지 않느냐의 차이이다. 스위치는 브로드캐스팅을 수행하고, 라우터는 이를 차단한다. 즉, 스위치는 같은 네트워크를 묶어주고, 라우터는 네트워크 집합을 분리시켜준다고 이해할 수 있다. 즉, 전 세계의 네트워크를 스위치로 구성하는 것은 불가능하다. 왜냐하면 패킷을 브로드캐스팅 할 때 전세계의 모든 컴퓨터에 대해 ..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 단절선 (Articulation Edge) 단절점과 단절선은 비슷한 원리로 구할 수 있다. DFS 를 통해 방문 노드의 순서와, 해당 노드를 포함한 자식 노드들에서 가장 먼저 방문한 노드의 순서(최저 방문 순서)를 저장한다. 그 후, 해당 노드의 최저 방문 가능 순서가 인접 노드의 방문 순서보다 클 경우(즉, DFS 방식으로 해당 노드를 방문하는 과정에서 다른 노드에서 해당 노드를 방문할 수 없는 경우) 해당 엣지는 단절선이라고 할 수 있다. 코드는 GeeksForG..
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. Boggle : Find all possible words in a board of characters 다음과 같은 보드가 있다고 가정했을때, Dictionary에서 우리가 원하는 단어를 보드를 통해 만들 수 있는지 없는지 확인하는 코드를 짜 보자. 인풋과 아웃풋은 다음과 같다. 제약 조건은, 보드에서 상하좌우 + 대각선 총 8가지 방향으로 이동할 수 있다는 것과, 보드 위의 문자를 중복해서 방문하는 것은 안된다는 것이다. 해당 함수는 DFS 방식으로 구현해야 한다...
기술면접과 코딩테스트 준비를 위해 꼭 알아야 할 기초 알고리즘 관련 개념들과 코드를 정리하고 있습니다. 각 주제들은 GeeksForGeeks 의 Top 10 algorithms in Interview Questions 글에서 발췌하였습니다. 위상정렬 (Topological Sort) 위상정렬은 유향 그래프 (DAG, Directed Acyclic Graph) 에서 선후관계를 고려한 정렬 방식이다. 즉, A -> B 의 관계가 있다고 했을때, 위상정렬을 하면 반드시 A 가 B 보다 먼저 출력된다. 위상정렬을 하기 위해서는 Incoming Edge 의 값이 0 인 녀석들부터 순서대로 추출하여 출력하면 된다. 특정 Vertex 를 추출하면 해당 Vertex 가 가리키는 Vertex 의 Incoming Edge..