안녕하세요. RyuWoong입니다.이제까지 Programmers에서 알고리즘 문제를 풀어 왔는데, 깃헙 프로필을 꾸미면서 티어를 노출시키는 기능을 써먹어야겠다고 생각이 들었습니다. 그래서 백준을 풀어보려고 합니다! 그러면서 어떻게 문제를 제가 풀고 제출하는지 한번 슥, 보여드리려고 합니다.준비하기.우선 Algorithm이라는 폴더를 만들어 내부에서 관리하려고 합니다.Algorithm 폴더 내에는 Question과 Utils 폴더를 추가로 만들어줬습니다. 그리고 Question 폴더 내에는 문제번호로 폴더를 만들고 각문제 번호마다, a.js 와 q.txt 를 만들었습니다.여기서 q.txt는 문제의 테스트케이스가 들어가는 곳이고, a.js는 제가 문제를 풀이하는 자바스크립트 코드를 적는 파일입니다. 간단하..
이번에 알아볼 알고리즘은 퀵 정렬 (Quick Sort) 입니다. 불안정 정렬이며, 다른 원소와 비교만으로 정렬하는 비교 정렬에 속합니다 분할정복알고리즘 중에 하나로, 평균적으로 매우 빠른 수행속도를 자랑합니다. 분할정복이란? 큰 문제를 작은 문제 단위로 쪼개면서 해결해나가는 방식 🤔 과정 및 코드 원소 안에서 원소 하나를 선택합니다. 선택한 원소를 피벗(Pivot)이라고 합니다. 피벗의 값을 기준으로 작은 원소는 왼쪽으로 큰 값은 오른쪽으로 정렬하고, 피벗 값은 사이로 들어가게 됩니다. 이후 왼쪽과 오른쪽 리스트에 각각 다시 퀵정렬을 반복하며 정렬하여 더 이상 리스트들이 분할되지 않을때 까지 반복합니다. 📝 Python 예시 코드. def QuickSort(arr): if len(arr)
이번에 알아볼 알고리즘은 삽입 정렬(Insertion Sort)입니다. 원카드를 할 때를 생각해보면, 손 패의 카드를 숫자 순으로 정렬해서 손에 쥐고 있던적 있죠? 이 상태에서 카드를 뽑게 되면 순서에 맞춰 패에 카드를 넣게 되는데, 이 방식이 삽입정렬이라고 생각하면 좋아요! 2번째 원소 부터 시작하며,선택한 원소의 앞에 있는 원소들과 비교하여 삽입할 위치를 정한 뒤 원소를 뒤로 옮기고 지정된 자리에 원소를 삽입하는 정렬 알고리즘입니다. 🤔 과정 및 코드 먼저 2번째 위치의 값을 temp에 저장하고 해당 원소보다 아래 위치에 있는 값들과 비교하며 알맞는 위치에 삽입합니다. 이후 그 다음(3번째) 위치의 값을 temp에 저장하고 아래 위치에 있는 값들과 비교하며 삽입을 반복합니다. 📝 Python 예시 코..
이번에 알아볼 알고리즘은 선택 정렬(Selection Sort) 입니다. 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘입니다. 쉽게 말해 모든 원소를 훑어 제일 작은(큰) 원소부터 차곡차곡 정렬하는 방식입니다. 🤔 과정 및 코드 해당 순서에 원소를 넣을 위치를 정해 놓고 조건에 맞는 원소를 선택하고 넣으며 정렬합니다. 📝 Python 예시 코드. def Selection_Sort(arr): for i in range(0, len(arr)): index = i for j in range(i+1, len(arr)): if arr[index] > arr[j]: index = j temp = arr[i] arr[i] = arr[index] arr[index] = tem..
알고리즘의 첫 장입니다. 먼저 알아볼 알고리즘은 거품 정렬(Bubble Sort)입니다. 이 알고리즘은 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘입니다. 이름의 유래는 정렬 과정에서 원소의 이동이 마치 거품이 수면 위로 올라 오는 듯한 모습을 보이기 때문이라고 합니다. 🤔 과정 및 코드 첫 회전에서 첫번째 원소와 두번째 원소 비교를, 두번째 원소와 세번째 원소 비교 이렇게 쭉 해나가서 결국 마지막엔 가장 큰 원소가 맨 뒤로 가게 되고, 해당 회전을 반복하면 큰 순으로 뒤에서 부터 정리 됩니다. 📝 Python 예시 코드. def Bubble_Sort(arr): for i in range(0, len(arr)): for j in range(1, len(a..