[프로그래머스]완전탐색_모의고사(Level 1/JS)
오늘은 완전탐색 방법으로 풀이한 문제를 적어보려고 한다. 완전탐색은 말 그대로 모든 경우의 수를 완전하게 탐색해서 정답을 찾아내는 알고리즘 방법이다. 모의고사 문제 설명 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까..
2023. 7. 13.
[알고리즘]퀵 정렬(Quick Sort)_JS
퀵 정렬 퀵 정렬은 분할정렬과 비슷하게 배열에서 임의의 값을 하나 정해서 그 값보다 작으면 왼쪽으로, 중간값보다 크면 오른쪽으로 보내는 과정을 통해 정렬을 진행한다. 분할정렬과 다른점이 있다면 분할정렬은 새로 배열을 만들어 메모리를 비교적 많이 차지한다는 점이고, 퀵 정렬은 재귀를 통해 정렬하는 과정이므로 비교적 메모리를 적게 소모한다는 점이다. 3 22 14 59 1 92 9 이런 배열이 있다고 가정해보자 배열의 중간 값과 나머지 배열과 비교해 작은 값들은 왼쪽, 큰 값들은 오른쪽으로 정렬한다 ([3, 22, 14, 1, 9], 중간 값 59, [92]) 재귀함수로 나누어진 왼쪽과 오른쪽 배열에도 똑같은 과정을 거친다. ([3, 1, 9], 중간 값 14, [22]) 그렇게 모든 배열이 정렬될 때까지 ..
2022. 12. 12.
[알고리즘]삽입정렬(Insertion Sort)_JS
삽입정렬(insertion sort) 손 안의 카드를 순서대로 정리하는 방법과 유사(3이란 카드를 들고 2와 4 사이에 끼워 넣는 느낌) 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하며 해당하는 위치에 삽입함으로써 정렬을 하는 알고리즘 처음 key값은 두 번째 값부터 시작해서 자신보다 왼쪽 인덱스(이미 정렬 된)에 있는 값들과 비교한다. 2 44 21 11 5 위와 같은 배열이 있다고 가정할 때, 먼저 첫번째 key인 44와 2를 비교한다. 앞의 인덱스의 값이 더 작기 때문에 다음 인덱스로 넘긴다 [2,44,21,11,5] key는 21로 바뀌고 21과 2, 44를 비교해 21은 2와 44 사이의 값이기 때문에 해당하는 인덱스에 위치시킨다 [2,21,44,11,5] key는 11..
2022. 12. 6.