본문 바로가기
반응형

개발/알고리즘36

알고리즘 : 큰 수 구하기 프로그래머스 (자바스크립트) 내가 맨 처음에 작성했던 코드는 다음과 같다. 처음엔 반복문으로 쓰다가 , 이건 queue 같다 싶어서 queue를 이용했다. 그런데 하다보니 후입선출이 되는걸 보고 stack이란걸 깨달았다. function solution(number, k) { //현재값보다 다음값이 크면 현재값을 제거해야함. 무조건 제거임 if(k===0)return number let stack = [number[0]] let idx = 0; for(let i = 1;i 2021. 10. 26.
알고리즘 21 : 프로그래머스 체육복 function solution(n, lost, reserve) { //전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 reserve //정렬 안하면 테스트케이스 12,18이 통과가 안됨 lost.sort((a,b)=>a-b) reserve.sort((a,b)=>a-b) //체육복이 여벌이 있었는데 도난당해서 1벌만 남은 경우를 생각해서 교집합을 빼준다. let realLost = lost.filter((element) => !reserve.includes(element)); let realReserve = reserve.filter((element) => !lost.includes(element)); //lost중 체육복을 못빌린 애만 남긴다 let noUn.. 2021. 10. 25.
QuickSort 정리 목표 QuickSort 알고리즘 이해 QuickSort 알고리즘을 자바스크립트로 구현 QuickSort 특징 이해 QuickSort 시간복잡도 이해 QuickSort 알고리즘 개념 불안정 정렬이며 다른 원소와의 비교만으로 정렬을 수행하는 비교정렬이다. 정렬 속도가 매우 빠르다. 분할 정복 알고리즘이다. 문제를 작은 2개의 문제로 분리하고 각각을 해결한 후, 결과들을 모아서 원래의 문제를 해결하는 전략 리스트를 두개의 비균등한 크기로 분할하고 분할된 부분 리스트를 정렬한 다음, 두 부분 리스트를 다시 합하여 전체가 정렬되도록 하는 방법 분할(Divide) : 입력 배열(arr)을 arr[0](pivot)을 기준으로 비균등 하게 2개의 부분 배열로 분할한다. 정복(Conquer) : 부분 배열을 정렬한다. .. 2021. 10. 17.
InsertionSort 정리 목표 InsertionSort 알고리즘 이해 InsertionSort 알고리즘을 자바스크립트로 구현 InsertionSort 특징 이해 InsertionSort 시간복잡도 이해 InsertionSort 알고리즘 개념 삽입 정렬은 두번째 자료부터 시작하여 그 앞의 자료들과 비교하며 삽입할 위치를 정한다. 나머지 자료들은 뒤로 밀어낸다. InsertionSort 예시 InsertionSort 자바스크립트 코드 const insertionSort = function (arr) { // TODO: 여기에 코드를 작성합니다. // 두번째 자료부터 시작하여 그 앞의 모든 자료들과 비교하여 삽입할 위치를 정한다. // 삽입할 위치가 정해지면 그 위치 뒤쪽의 자료들은 뒤로 밀려난다. // 새로운 배열을 만들고 정렬되있.. 2021. 10. 16.
반응형