알고리즘 썸네일형 리스트형 자료구조 - 스택(Stack)과 큐(Queue) 1. 스택(Stack)이란 무엇인가? 어떤 데이터의 구체적인 구현 방식은 생략한 채, 데이터의 추상적 형태와 그 데이터를 다루는 방법만을 정해놓은 것을 가지고 ADT(Abstract Data Type) 혹은 추상 자료형이라고 한다. 그 중 널리 사용되는 스택(Stack) 과 큐(Queue)가 있다. 이 두 자료구조는 자바스크립트(JavaScript)에 내장되어 있기 않지만, 배열(Array)과 내장함수들을 이용하여 스택(Stack)과 큐(Queue)를 흉내낼 수 있다. 대부분의 알고리즘 문제를 풀어야할 경우 배열을 이용하더라도 통과하는 편이지만, 시간 복잡도를 매우 세세하게 관리한다던가, 데이터의 양이 매우 큰 경우에는 이 같은 방식으로는 통과할 수 없는 경우가 있다. 이럴 경우에는 연결리스트(Linke.. 더보기 자료구조 - 해시 테이블(hash table)이란 무엇인가? 1. 해시와 해시 테이블(hash table)이란 무엇인가? 1) 해시 테이블이란? 해시 함수에 의해 얻어지는 값을 해시라고 부른다. 해시 함수에 key를 줄 경우, key에 해당하는 숫자 index주소를 반환하고, 그 숫자 index에 value를 저장하는 원리로 해시 테이블을 생성한다. 해시 테이블은 키(key)와 값(value)으로 데이터를 저장하는 비선형 자료 구조로, 각 키(key)에 대해 고유한 해시 값(hash value)을 생성하고, 이 해시 값을 배열의 인덱스로 사용하여 값을 저장하고 검색하는 방식이다. 매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어 에서 사용된다. 해시가 매우 빠른 데이터 검색을 할 수 있는 이유는 데이터를 검색할 때 사용할 key와 실제 데이터의 값(value)이 한.. 더보기 자바스크립트 랜덤숫자 뽑기(중복 제거) 1. 배열에 중복여부를 확인한 후, 원하는 갯수만큼 랜덤숫자 삽입 function randomArray() { const array = []; while (array.length < 3) { const random = Math.trunc(Math.random() * 10); if (!array.includes(random)) { //중복이 없을경우 array.push(random); } } return array.join("") } 2. Set객체를 이용해(중복 제거) 랜덤숫자 삽입 후, 스프레드 연산자로 배열로 변경 function randomArray() { let array = new Set(); while (array.size < 3) { array.add(Math.trunc(Math.random.. 더보기 프로그래머스 Lv0 알고리즘 풀이 프로그래머스 Lv0 알고리즘 풀이 1. 몫 구하기 정수 num1, num2가 매개변수로 주어질 때, num1을 num2로 나눈 몫을 return 하도록 solution 함수를 완성해주세요. function solution(num1, num2) { return parseInt(num1/num2) //기존 return Math.floor(num/num2) //더 나은 풀이1 return Math.truns(num1/num2) //더 나은 풀이2 } - parseInt() => 문자열에서 숫자 데이터만 추출하여 숫자열로 변환, 공백 무시, 소수점 무시 => 소수점 버림 기능으로 활용은 가능하나, 그 의도의 목적이 아닌, string을 number로 변환하기 위한 함수이기 때문에 불필요한 문자 변환 등의 기능이.. 더보기 [알고리즘] 자바스크립트 배열 함수, 내장 함수 등 모음 - 자바스크립트 Reference: 자바스크립트에 내부에 포함되어있는 Object들을 카테고리 별로 확인 가능하다. : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference JavaScript reference - JavaScript | MDN The JavaScript reference serves as a repository of facts about the JavaScript language. The entire language is described here in detail. As you write JavaScript code, you'll refer to these pages often (thus the title "JavaScr.. 더보기 이전 1 다음