01 완전 탐색✔️ 완전 탐색은 간단히 가능한 모든 경우의 수를 다 체크해서 정답을 찾는 방법이다. 어떻게 보면 무식한 방법이라 할 수 있다.이 방법은 무식하게 한다는 의미로 “Brute Force (순전한 힘)”라고도 불리며, 직관적이여서 이해하기 쉽고 문제의 정확한 결과를 얻어 낼 수 있는 가장 확실하며 기초적인 방법이다.예를 들어 4자리 비밀번호를 알아내고 싶다면 생년월일, 기념일 등으로 유추해보는 것이 아닌 0000부터 9999까지의 모든 경우의 수를 전부 대입해보는 것이다.완전 탐색 구현 방법for/while loop재귀함수보통 간단한 문제는 for/while문을, 어려운 문제는 재귀함수를 사용한다고 생각하면 된다. 02 재귀✔️ 재귀는 하나의 함수에서 자기 자신을 호출해 작업을 수행하는 알고리..
사용 이유 서합 이후 프론트엔드 과제를 하면서 임시 json 데이터를 불러오기 위해 API를 만들어야했다. 서버에 연결해서 하는 방법도 있지만 현재는 임시 json 데이터를 두는 거라고 생각하였기 때문에 라이브러리 중 json-server를 활용하게 되었다. 기본 설정 asset/db에 data.json이라는 파일을 만들고 { "numbers": [ { "id": 1, "number": 1 }, { "id": 2, "number": 2 }, { "id": 3, "number": 3 }, { "id": 4, "number": 4 } ] } json형태의 데이터를 넣어둔다. 라이브러리 설치 npm install -g json-server sudo npm install -g json-server 설정 json..
그리디 알고리즘 그리디 알고리즘은 매번 최적의 선택을 하여 결국 결과가 최적이 되게 하는 알고리즘이다. 또한 그리디 알고리즘은 최소 비용 신장트리, 크루스칼 알고리즘, 다익스트라 알고리즘 등 다양한 알고리즘에 응용되어 사용되므로 Greedy 특징을 잘 알아두어야한다. 하지만 그리디 알고리즘은 투포인트처럼 특정한 풀이방식이 정해져있는 알고리즘과는 다르게 문제마다 풀이방식이 다르므로 처음 접하면 어렵게 느낄 수 있는 알고리즘이다. 01. 그리디 알고리즘이란? 그리디 알고리즘은 직역하자면 탐욕 알고리즘으로 미래를 고려하지 않고 오직 현재 시점에 가장 좋은 선택을 하는 알고리즘이다. [예시] 단위가 다른 동전들로 총액 K를 만들 수 있는 최소한의 동전 개수를 구한다. 1,620원을 만들려면 500원 동전 3개,..
에라토스테네스의 체란? 소수를 판별하는 알고리즘이다. 소수들을 대량으로 빠르고 정확하게 구하는 방법이다. 소수란? 간단하게 1과 그 수 자신 이외의 자연수로는 나눌 수 없는 자연수로 정의할 수 있다. 단일 숫자 소수 여부 확인 어떤 수의 소수의 여부를 확인 할 때는, 특정한 숫자의 제곱근까지만 약수의 여부를 검증하면 O(N^1/2)의 시간복잡도로 빠르게 구현할 수 있다. 수가 수(N이라고 가정)를 나누면 몫이 생기는데, 몫과 나눌 수 있는 둘 중에 하나는 N 제곱근 이하이기 때문이다. 만약, 대량의 소수를 한꺼번에 판별해야할 경우는 '에라토스테네스의 체'를 이용한다. 에라토스테네스의 체 원리 에라토스테네스의 체는 가장 먼저 소수를 판별할 범위만큼 배열을 할당하여, 해당하는 값을 넣어주고, 이후에 하나씩 ..