![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/RAeci/btrFuCFGtYi/e46e4FTkwdV7KkKxntNrxK/img.png)
문제 문제 바로가기: [프로그래머스] 2019 KAKAO BLIND RECRUITMENT - 후보키 풀이 #문제를 이해를 못해서 시간을 엄청 잡아먹었다.... #조합, 중복 #주의1 1. 최소성이 되어야한다는 뜻은 ["학번"]도 후보키가 될 수있고, ["학번", "이름"]도 후보키가 될 수 있을 때 먼저 가장 적은 갯수의 조합으로 후보키를 구한다 #주의2 (여기서 너무 헷갈렸다) 1. 예를 들어, ["학번"]을 후보키로 구했다고 했을 때, 그 후에는 ["학번"]이 다른 후보키에 들어가면 안되기 때문에 ["학번", "..."], ["학번", "...", "..."]은 후보키가 될 수 없다 2. 다른 예시로, ["학번, "이름"]을 후보키로 구했다고 했을 때, 그 후에는 ["학번", "이름", "..."],..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cK0k1W/btrEUjADpwm/AUbQEwgyAS30md9K4aOJE0/img.png)
문제 문제 바로가기: [프로그래머스] 2021 카카오 채용연계형 인턴십 - 표 편집 풀이 #데이터의 범위가 1,000,000 * 200,000이기 때문에 단순히 풀면 안된다고 생각했다 #그래서 떠올린게 이전 값, 다음 값을 가리키도록 딕셔너리를 사용하여 연결리스트처럼 푸는 방법이였다 #딕셔너리, 연결리스트, 스택, 활용 1. 딕셔너리에 { 해당 숫자: [이전 숫자, 다음 숫자] } 를 가리키도록 모두 넣어줍니다 (예를들어 2일때, { 2: [1,3] } ) - 맨 처음 노드의 이전, 맨 마지막 노드의 다음은 가리키는 값이 없습니다 2. (이동) U 또는 D의 경우 select노드부터 가리키는 노드를 반복해서 타고 가면 됩니다 3. (삭제) C의 경우 3-1. 해당 노드가 가리키는 이전 노드에서 다음 노드..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/b6XW0r/btrERnJrqiD/G0ABswkXOtKmKkToSM21F0/img.png)
(5가지) 과정 1. 웹 브라우저에 원하는 도메인을 입력하고 각 단계별로 해당 주소가 캐싱되어 있는지 확인한다. (이전에 접속한 적이 있는 페이지이고, 캐싱이 적용되었다면 DNS요청없이 IP주소를 찾을 수 있다) 1-1. Browser DNS Cache PC는 가장 먼저 브라우저 내에 존재하는 Browser DNS Cache에서 IP주소를 찾는다 1-2. OS DNS Cache 만약 Browser DNS Cache에서 못 찾으면, OS DNS Cache에서 IP주소를 찾는다 1-3. Router DNS Server 만약 OS DNS Cache에서도 못 찾으면, Router DNS Server에서 IP주소를 찾는다 1-4. DNS Server 만약 Router DNS Server에도 도메인에 대한 IP 주..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/NRaNI/btrEOG2yESM/LWlLdy26Us1EHzvZIE4zS0/img.png)
문제 문제 바로가기: [프로그래머스] 2020 카카오 인턴십 - 보석 쇼핑 풀이 #처음에 풀 지 못해서 카카오 해설을 참고하였다 #투 포인터, 딕셔너리 활용 1. 범위의 시작을 나타내는 왼쪽 인덱스 포인터, 범위의 끝을 나타내는 오른쪽 인덱스 포인터를 사용했습니다 - 두개의 포인터 모두 인덱스 0에서 시작합니다 2. 반복문을 통해 왼쪽 인덱스 고정, 오른쪽 인덱스는 하나씩 나아갑니다 - 왼쪽 인덱스 또는 오른쪽 인덱스가 길이를 넘어가면 모든 것을 종료합니다 3. 오른쪽 인덱스의 해당하는 값들을 딕셔너리에 { 'RUBY': 빈도수 } 형태로 넣어 줍니다 - 이미 딕셔너리에 있는 값이라면 빈도수 + 1을 해주고, 딕셔너리에 없었다면 값: 1 을 정의해줍니다 4. 위의 과정 중 오른쪽 인덱스가 하나씩 나아갈 ..
자바스크립트는 싱글 스레드이며, 이것은 Call Stack이 하나라는 이야기이다. 자바스크립트는 기본적으로 작업들을 동기 작업을 한다는 의미이다. 그런데 어떻게 자바스크립트에서 비동기 작업들이 가능한건지? 이벤트 루프, Task queue가 있어서 가능하다 자바스크립트 엔진 Call Stack 자바스크립트는 단 하나의 호출 스택(Call Stack)을 사용한다. 처리할 작업들은 차례대로 호출 스택(Call Stack)에 담아서 차례대로 처리한다. 하나의 함수가 실행되고, 이 함수의 실행이 끝날 때까지 어떤 task도 수행될 수 없다 (동기 작업). Task queue (대기실) Task queue는 처리할 비동기 관련 작업들을 임시 저장하는 큐이다. 비동기 작업에 관련한 Web APIs(setTimeou..
- Total
- Today
- Yesterday