Dgos

dongjune's dev blog

[JavaScript] Logical Operator - or(||), and(&&), equality(===), not(!)

operator

|| (or) or 연산을 할 때 만약 앞에서 true가 나온다면 뒤까지 확인하지 않고 바로 true를 return하게 됩니다. 따라서 무거운 연산을 하는 것일수록 가장 뒤에 보내는게 효율적인 코드입니다. 다음의 코드를 보면 value1이 true이기 때문에 바로 true를 return하고 뒤에 있는 check 함수는 실행이 안되는 것을 확인할 수...

[JavaScript] Data types - let, var, hoisting

데이터 타입

let vs var ES6 문법부터는 변수 선언시 var를 사용하지 않고 let을 사용합니다. var를 사용하면 안되는 이유는 var hoisting 때문인데, var hoisting이란 선언이 어디에 있는지 상관없이 선언을 항상 맨 위로 올려주는 것을 뜻합니다. 따라서 var는 다음의 코드에서 error가 나타나지 않지만, let은 error가...

[Algorithm] Quick Sort (퀵 정렬) - C++

Sort

퀵정렬 퀵정렬은 분할정복 패러다임을 기반으로 한 정렬 알고리즘입니다. 한 부분배열에서 pivot을 정한 후 pivot보다 작은 수를 왼쪽으로, 큰 수를 오른쪽으로 놓는 과정을 재귀적으로 수행합니다. 다음의 그림은 퀵 정렬의 동작 과정을 간단하게 보여줍니다. 각 부분수열의 pivot(기준)을 정한다. pivot을 정할 때 중...

[프로그래머스] 문자열 압축 - C++

level2

문제 프로그래머스 문자열 압축 풀이 다양한 단위 길이로 문자열을 압축했을 때 압축 된 문자열의 가장 최소 길이를 찾는 문제입니다. 주어진 문자열의 길이가 n이라면 문자열을 자를 수 있는 단위 길이는 1 부터 n/2 까지 입니다. n/2를 넘어가서 문자열을 자르면 어차피 같은 문자열이 나올 수 없기 때문입니다. 문자열을 자를 때는 string...

[프로그래머스] 카카오프렌즈 컬러링북 - C++

level2

문제 프로그래머스 카카오프렌즈 컬러링북 풀이 DFS를 활용하여 영역의 개수를 세줬습니다. 다음은 dfs를 구현한 재귀함수입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 // y,x : 현재 좌표 // type : 영역의 종류 int countArea(const vector<vector<in...

[프로그래머스] 프린터 - C++

level2

문제 프로그래머스 프린터 풀이 큐와 우선순위 큐를 같이 사용하여 풀이 했습니다. 큐에는 주어지는 우선순위와 index 번호를 pair 형태로 넣어주고, 우선순위 큐에는 우선순위만 넣어줍니다. 1 2 3 4 5 6 7 8 queue<pair<int,int>> q; priority_queue<int> pq; in...

[Algorithm] Bubble Sort (버블 정렬) - C++

Sort

버블정렬 버블정렬은 가장 느린 정렬 알고리즘 매 사이클마다 가장 큰 수를 뒤로 보낸다 다음은 버블정렬을 쉽게 설명해놓은 그림입니다. 매 pass가 끝날 때 마다 큰 수부터 차례대로 뒤에 채워지는 것을 볼 수 있습니다. *** 구현 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...

[Algorithm] Insertion Sort (삽입 정렬) - C++

Sort

삽입정렬 1~n 인덱스를 순회하며 그 인덱스의 값이 왼쪽의 어느 위치에 들어가야 할지 탐색 왼쪽의 값들은 항상 정렬돼있다는 특징이 있다. 정렬이 대부분 되어있는 경우 높은 속도를 보여줌. 다음의 배열을 삽입정렬을 사용하여 정렬해봅시다. 우선 두번째 인덱스인 7에서부터 시작합니다. 7은 현재 왼쪽 영역에서 알맞은 순서에 위차하기 때문...

[Algorithm] Selection Sort (선택 정렬) - C++

Sort

선택정렬이란? 선택정렬은 제자리 정렬 알고리즘의 하나입니다. 프로세스는 다음과 같습니다. 배열에서 최소값을 찾는다. 찾은 최소값을 맨 앞의 요소와 바꿔준다. 맨 앞을 제외한 값들에서 최소값을 찾고 위와 같은 방법으로 교체해준다. 다음의 배열을 선택 정렬을 사용하여 오름차순 정렬해보겠습니다. 우선 첫번째 인덱스에 들어갈 요소를 찾습니...

[2018 KAKAO BLIND RECRUITMENT] [1차]프렌즈4블록 - C++

level2

문제 [1차] 프렌즈4블록 풀이 while 문을 돌면서 지울 수 있는 블록들의 위치 좌표를 모두 큐에 넣어줬습니다. 그리고 큐를 비우면서 지우는 블록의 개수를 카운트 해줬습니다. 지우고 난 후 빈 공간의 블록을 채우는 것은 3중 for문으로 구현해줬습니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2...