javascript
[프로그래머스] 제일 작은 수 제거하기 - JS
https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr 생각했던 알고리즘은 1. arr length가 1이면 [-1]을 return 한다 2. arr에서 가장 작은 수를 구한다 3. 그 수를 arr에서 뺀다 여서 굉장히 간단하다 생각했습니다 JS문법이 간단하지 않아서 그렇지,,, 1. 배열에서 제일 작은 수 구하기 - Min, Max let arr = [1, 2, 3,..
[JavaScript] 알고리즘에 쓰이는 문법 (중복, 포함여부)
중복제거 Set < indexOf < includes순으로 시간 오래걸림 indexOf() 배열에서 지정된 요소 찾을 수 있는 첫번째 인덱스를 반환 존재하지 않으면 -1 if(answer.indexOf(numbers[i]+numbers[j])===-1){ answer.push(numbers[i]+numbers[j]) } Set() 자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있음 const temp = [] for (let i = 0; i < numbers.length; i++) { for (let j = i + 1; j < numbers.length; j++) { temp.push(numbers[i] + numbers[j]) } } const answer = [...new Se..
[JavaScript] 알고리즘에 쓰이는 문법(누적합, 정렬)
누적합 reduce 누적할때 사용 acc가 합의 결과, 0으로 초기화, cur이 a 순서대로, idx가 index function solution(a, b) { var answer = a.reduce((acc, cur, idx) => acc += cur*b[idx], 0) return answer } 정렬 sort() 정렬하기 : array, object일때 사용가능 기본개념 sort(a, b)에서 a는 다음 인자, b는 현재 idx인자를 뜻함 sort([compareFunction])에서 [compareFunction] 이 어떤 값을 반환하는지가 중요 0보다 크다 0이다 0보다 작다 ⇒ 이 경우에만 앞 뒤 순서가 바뀜 answer.sort((next, prev) ⇒ (next > prev) - (nex..
[JavaScript] 알고리즘에 쓰이는 문법 (배열초기화)
new Array 초기화 할 값의 길이를 정할 수 있음 prices = [1,2,3,4,5] answer = new Array(prices.length) >>[ ] Array.from 초기화할 범위와 값을 정할 수 있다 const arr = Array.from({length: 5}, (v, i) => i); // i(index) 1씩 증가 console.log(arr); // => Array(5) [0, 1, 2, 3, 4] console.log(arr[0]); // => 0 console.log(arr.length); // => 5 /* 콜백함수의 첫번째 매개변수, v 생략시 undefined 반환 */ const arr = Array.from({length: 5}, (i) => i); console...
스택(Stack) - JS
참고사이트자바스크립트의 자료구조 4 : 스택(Stack), 큐(Queue) [자료구조] 스택(Stack) 스택(stack)이란? 후입선출(Last In First Out - LIFO)특성을 가지는 자료구조 pop() : 스택에서 가장 위에 있는 항목 제거 push(item) : item하나를 스택의 가장 윗 부분에 추가 peek() : 스택의 가장 위에있는 항목 반환 isEmpty() : 스택이 비어있을 때에 true반환 size() : 스택의 크기를 return 스택의 특징 LIFO 구조 제일 위의 데이터만 알 수 있다 데이터 갯수 확인 가능 중간 데이터는 모름, 알고싶으면 제일 위부터 있을거라 추정되는 그 데이터까지 모조리 꺼내야한다 제일 처음 들어간 자료는 모든 자료를 꺼내기 전까지 확인할 수 없고..
배열 - JS
배열이란? 가장 일반적인 구조 메모리 상에 같은 타입의 자료가 연속적으로 저장됨 자료값을 나타내는 가장 작은 단위가 자료를 다루는 단위 특징 같은 타입의 데이터를 나열한 선형 자료구조 연속된 메모리 공간에 순차적으로 저장 배열의 크기는 고정, 선언할 때에 배열의 크기를 정하고 변경할 수 없다(정적 표현) 인덱스를 이용하여 표현 지역성을 가지고 있음 시간복잡도 (1) 삽입/삭제 배열의 맨 앞에 삽입/삭제하는 경우: O(n) 배열의 맨 뒤에 삽입/삭제하는 경우: O(1) 배열의 중간에 삽입/삭제하는 경우: O(n) (2)탐색 O(1) 장점 인덱스를 가지고 있어 바로 접근 가능(시간복잡도 O(1)) -자료구조의 크기가 클수록 더 강력한 장점 연속된 메모리 공간에 존재하기 때문에 관리하기가 편하다 단점 삽입과 ..