배열에서 중복된 값을 제거하기 위해서는 일반적으로 우선 배열을 정렬한다. 오름차순 정렬을 하면 중복된 값들이 인접한 위치에 모여 중복을 쉽게 찾을 수 있기 때문이다. 예를 들어, 정렬되지 않은 배열에서 중복을 찾으려면 배열의 모든 요소를 하나씩 비교해야 한다. 하지만 정렬된 배열에서는 중복된 값들이 연속해서 나타나기 때문에 중복을 찾는 과정이 간단해진다. 결국은 시간 복잡도를 줄이기 위함이다. 정렬된 배열에서 중복을 찾는 것은 인접한 값들만을 비교하면 되기 때문에 추가적인 반복문이나 자료구조를 사용할 필요가 없어진다. 반면, 정렬되지 않은 배열에서 중복을 찾으려면 모든 요소를 비교해야 하므로 시간 복잡도가 크게 증가할 수 있다. 예를 들어, 주어진 배열이 [4, 2, 1, 2, 4, 3, 1]이라고 가정..
문제 N개의 x, y 좌표가 주어지면 오름차순으로 정렬하시오. x값이 같다면 y에 의해 정렬합니다. 입력 예제 1 4 2 8 2 3 3 5 출력 예제 1 4 2 4 2 8 3 5 풀이 sort() 메서드를 사용하여 간단하게 해결할 수 있다. function solution(arr) { let answer = arr; arr.sort((a, b) => { if(a[0] === b[0]) return a[1] - b[1]; // y좌표로 오름차순 정렬 else return a[0] - b[0]; }) return answer; }
문제 캐시 메모리는 CPU와 주기억장치(DRAM) 사이의 고속의 임시 메모리로서 CPU가 처리할 작업을 저장해 놓았다가 필요할 바로 사용해서 처리속도를 높이는 장치이다. 워낙 비싸고 용량이 적어 효율적으로 사용해야 한다. 철수의 컴퓨터는 캐시 메모리 사용 규칙이 LRU 알고리즘을 따른다. LRU 알고리즘은 Least Recently Used 의 약자로 직역하자면 가장 최근에 사용되지 않은 것 정도의 의미를 가지고 있습니다. 캐시에서 작업을 제거할 때 가장 오랫동안 사용하지 않은 것을 제거하겠다는 알고리즘입니다. 만약 캐시의 사이즈가 5이고 작업이 2 3 1 6 7 순으로 저장되어 있다면, (맨 앞이 가장 최근에 쓰인 작업이고, 맨 뒤는 가장 오랫동안 쓰이지 않은 작업이다.) 1) Cache Miss : ..
배열을 오름차순으로 정렬할 수 있는 방법은 여러 가지가 있다. sort() 메서드를 사용하는 방법부터, 다양한 정렬 알고리즘까지 정리해보자. 목차 sort() 선택 정렬 버블 정렬 1. sort() function solution(arr) { let answer = arr; arr.sort((a, b) => a - b); return answer; } 2. 선택 정렬 선택 정렬은 한 요소를 나머지 요소와 하나씩 비교하며 자리를 교체하는 알고리즘이다. 이중 for 문을 사용한다. function solution(arr) { let answer = arr; for (let i = 0; i < arr.length; i++) { let idx = i; for (let j=i+1; j < arr.length; j..
배열 안의 요소를 정렬하기 위해서는 어떤 함수를 사용해야 할까? 자바스크립트 배열 메서드 중에 sort()를 사용하면 된다. sort()에 대해 자세히 알아보자. 목차 sort() 기본 형식 sort() 사용법 1. sort() 기본 형식 array.sort(정렬순서function) sort()의 매개변수 자리에는 정렬 순서를 정의하는 함수가 온다. 생략할 경우 각 요소를 문자열로 변환하고 그 문자열의 유니코드(ASCII)에 따라 오름차순으로 정렬된다. sort()는 정렬이 수정된 기존 배열을 반환하기 때문에 배열이 복사되는 것이 아님에 주의하여야 한다. 2. sort() 사용법 문자 정렬 1 2 3 4 const fruit = ['grape', 'apple', 'melon', 'banana']; // ..