js(25)
-
[JS] 계수 정렬
1. 계수 정렬 앞에서 포스팅한 것 중 제일 빠른 알고리즘을 고르자면 O(Nlog₂N)의 속도를 가지는 퀵 정렬, 병합 정렬, 힙 정렬이 있었다. 하지만 이번 포스팅에서는 이 세 개의 정렬보다 더 빠른 속도 O(N)의 속도를 가지는 계수 정렬에 대해서 포스팅하려고 한다. 단, 아래와 같은 조건이 주어졌을 경우다. 5 4 3 2 1 1 1 1 3 4 5 5 2 2 2 다음과 같은 5이하의 원소를 가진 배열의 원소들을 오름차순으로 정렬하시오 2 . 동작 순서 동작 순서는 다음과 같이 간단하다. 1에서 5까지의 원소의 개수를 카운팅한다. 카운팅한 개수만큼 원소들을 나열한다. 끝. 그림을 이용해서 설명을 해보도록 하겠다. 밑의 배열을 오름차순으로 정렬하려고 한다. 5 이하의 모든 자연수의 개수를 세기위해 5라는..
2020.06.17 -
[JS] 프로그래머스 - 괄호 변환
문제 설명 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 콘은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어 설명 '(' 와 ')' 로만 이루어진 문자열이 있을 경우, '(' 의 개수와 ')' 의 개수가 같다면 이를 균형잡힌 괄호 문자열이라고 부릅니다. 그리고 여기에 '('와 ')'의 괄호의 짝도 모두 ..
2020.06.16 -
[JS] 계산기 만들기
1. 완성본 완성본 영상은 다음과 같다. 간단하게 사칙연산(더하기, 빼기, 곱하기, 나누기)만을 구현했다. [영상] 완성본 영상 2. HTML 구조 0 3. CSS * { box-sizing: border-box; } html, body { height: 100%; padding: 0; margin: 0; } .calc-wrapper { width: 250px; height: 300px; position: relative; margin: 0 auto; margin-top: 50px; background-color: #f9f9f9; border: 1px solid #dfe1e5; border-radius: 20px; padding: 10px; display: flex; flex-direction: colu..
2020.06.14 -
[JS] 이진 탐색 트리
1. 이진 탐색 트리란? 이진 탐색 트리란 이진트리를 사용하기 위해서 저장할 데이터의 크기에 따라 노드의 위치를 정의한 것을 말한다. 이진 탐색 트리의 특징은 다음과 같다. 모든 원소는 서로 다른 유일한 키를 갖는다. 왼쪽 서브트리에 있는 원소의 크기는 그 루트의 키보다 작다. 오른쪽 서브트리에 있는 원소의 키는 그 루트의 키보다 크다. 왼쪽, 오른쪽 서브트리도 이진 탐색 트리다. 이번 포스팅에서 다룰 것은 이진 탐색 트리에 대한 간략한 정의, 탐색, 삽입, 삭제 연산이다. 이진 트리의 순회에 대해서는 이전에 포스팅을 했으니 참고하길 바란다. 2. 탐색 연산 탐색은 항상 루트에서 시작된다. 따라서 먼저 키값과 루트 노드의 키값을 비교한다. 비교 결과는 다음의 세 가지 중 하나가 될 것이다. (키값 x =..
2020.06.12 -
[JS] 자바스크립트의 자료형
1. 숫자형 정수, 부동 소수점과 같은 숫자 등의 수를 나타낼 때 사용한다. 곱셈(*), 나눗셈(/), 덧셈(+), 뺄셈(-) 등을 이용해서 연산이 가능하다. 일반적인 숫자 외에 Infinity, -Infinity, NaN과 같은 특수 숫자 값이 존재한다. const num = 3.5; // 3.5 /* 자바스크립트는 정수, 소수를 구분하는 형이 없다.*/ console.log(num/3); // 1.1666666666666667 console.log(parseInt(num/3)); // parseInt를 이용해서 1.1666666666666667에서 정수 부분 1을 가져오게 할 수 있다. /* 숫자형의 사칙연산 */ console.log("더하기:", 3 + 3.5); // 6.5 console.log..
2020.06.10 -
[JS] 변수와 상수
1. 변수 프로그래밍 언어를 한 번이라도 배운 적이 있다면, 변수, 상수의 개념에 대해서 한 번씩 들어본 적이 있을 것이다. 이 두 개는 거의 모든 언어에서 약속된 것 같이 개념이 비슷하다. 하지만, 함수형 언어의 일종인 스칼라같은 언어의 경우, 모든 변수가 한 번 저장되면 상수처럼 영원히 값을 변경할 수 없다고 한다. 그러나 , 자바스크립트는 함수형 언어가 아니니 C, 자바와 같이 변수, 상수의 개념이 명확하다. 그렇다면 변수는 무엇일까? 변수는 값을 저장하는 저장소이다. 프로그래밍을 배운 사람들은 보통 변수를 값을 수시로 바꿔서 저장할 수 있는 것으로, 상수를 한 번 저장하면 그 값은 영원히 바꿀 수 없는 것으로 알고 있다. 당신이 알고 있는 그 개념이 맞다. 자바스크립트도 그 개념이 똑같이 적용된다..
2020.06.08