전체 글
-
[코딩테스트 javascript] 안전지대 - DFS , BFS, 그래프 탐색 알고리즘알고리즘/코딩 테스트 2023. 1. 26. 14:26
안전지대 https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다. 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성..
-
[알고리즘] 그래프 탐색 알고리즘 - BFS, DFS알고리즘 2023. 1. 26. 12:16
오늘은 비선형 구조 중 그래프를 탐색하는 알고리즘을 배워볼 시간이다. 더보기 자료구조 : '데이터의 저장'을 담당하는 것을 말한다. 분류 선형 구조 ) 리스트 , 큐, 스택 비선형 구조 ) 그래프, 트리 파일 구조 ) 순차 파일, 색인 파일, 직접파일 단순 구조 ) 정수, 실수, 문자, 문자열 알고리즘 : 표현 및 저장된 데이터를 대상으로 하는 '문제 해결 방법'을 말한다. 그래프 탐색 알고리즘 그래프 - 여러 개체들이 연결되어 있는 자료구조 탐색 - 특정 개체를 찾기 위한 알고리즘 예시 1. 경로 탐색 ( 최단거리 , 시간) 2. 네트워크 (연결) 3. 조합 (모든 조합 찾기) DFS 깊이 우선 탐색 알고리즘 stack을 이용 => list의 경우 push(), pop()을 이용 const graph ..
-
[Javascript] 모던자바스크립트 딥 다이브 5일차 (~613p)웹/JavaScript 2023. 1. 26. 08:07
28. Number 표준 빌트인 객체인 Number는 원시 타입인 숫자를 다룰 때 유용한 프로퍼티와 메서드를 제공한다. //문자열 타입 => 숫자 타입 Number('2.3') // 2.3 //boolean 타입 => 숫자 타입 Number(true) // 1 Number(false) // 0 Number.isNaN Number.isNaN 정적 메서드는 인수로 전달된 숫자값이 NaN인지 검사하여 그 결과를 불리언 값으로 반환한다. //Number.isNaN은 암묵적 타입 변환 X Number.isNaN(NaN) // true Number.isNaN(undefined) // false //isNaN은 인수를 숫자로 암묵적 타입 변환한다. isNaN(undefined) // true Number.protot..
-
[알고리즘] 데이터 구조, 자료 구조 분류, 알고리즘, 성능 분석, 누적합알고리즘 2023. 1. 25. 16:43
자료구조 : '데이터의 저장'을 담당하는 것을 말한다. 분류 선형 구조 ) 리스트 , 큐, 스택 비선형 구조 ) 그래프, 트리 파일 구조 ) 순차 파일, 색인 파일, 직접파일 단순 구조 ) 정수, 실수, 문자, 문자열 알고리즘 : 표현 및 저장된 데이터를 대상으로 하는 '문제 해결 방법'을 말한다. 성능 분석 2가지 방법 1. 시간 복잡도 : 최적의 시간 주로 빅 O을 이용한다. (빅 오메가도 있다.) O(1) < O(logn) < O(n) < O(nlogn) < O (n**2) < O(n**3) < O(2**n) 참고로 log 밑에 숨겨진 숫자는 10이다. 2. 공간 복잡도 : 메모리 분량 누적합 강의 두 개를 듣고 정리한 알고리즘이다. 1. 큰돌 누적합을 이용하면 O(n**n)이 아닌 O(n)의 시간..
-
[Javascript] 모던자바스크립트 딥 다이브 4일차 (~551p)웹/JavaScript 2023. 1. 25. 12:15
25. 클래스 constructor 생성자 함수와 유사하지만 몇 가지 차이가 있다. constructor는 클래스 내에 최대 한 개만 존재할 수 있다. 만약 2개 이상인 경우 문법 에러가 발생한다. constructor를 생략하면 빈 constructor가 암묵적으로 정의된다. return(명시적으로 원시값을 반환하면) 무시되고 암묵적으로 this가 반환된다. constructor 내부에서 명시적으로 this가 아닌 다른 값을 반환하는 것은 클래스의 기본 동작을 훼손한다. 따라서 return문을 반드시 생략해야 한다. 프로토타입 메서드 생성자 함수를 사용해서 인스턴스를 생성할 경우 명시적으로 프로토타입에 메서드를 추가해야 한다. 하지만 클래스 메서드는 기본적으로 프로토타입 메서드가 된다. 클래스 필드 클..
-
[코딩 테스트] 프로그래머스 JS 연습 - 연속된 수의 합, 평행, 최빈값 구하기,겹치는 선분의 길이,옹알이알고리즘/코딩 테스트 2023. 1. 24. 16:39
1. 연속된 수의 합 문제 설명 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. function solution(num, total) { const min = (total / num) - (num-1)/2 return new Array(num).fill(min).map((v,i)=> v+i) } 처음 이 문제를 풀었을 때, 가운데 숫자를 Math.floor(total/num)으로 구한 뒤 arr에 push하는 방식으로 풀었다. 하지만 , 이 문제는 min부터 하나씩 더하는 것이 좋다. 참고로! new Ar..
-
[Javascript] 모던자바스크립트 딥 다이브 3일차 (~416p)웹/JavaScript 2023. 1. 23. 19:03
24. 클로저 상위 스코프 함수 객체의 내부 슬롯 [[Environment]]에 저장된 현재 실행 중인 실행 컨텍스트의 렉시컬 환경의 참조를 말한다. 함수 객체는 내부슬롯 [[Environment]]에 저장한 렉시컬 환경의 참조 , 즉 상위 스코프를 자신이 존재한 한 기억한다. 자신이 호출되었을 때 생성될 함수 렉시컬 환경의 "외부 렉시컬 환경에 대한 참조"에 저장될 참조값이다. 클로저 클로저는 자바스크립트 고유의 개념이 아니므로 ECMAScript 명세에 클로저의 정의가 등장하지 않는다. 클로저에 대해 MDN은 아래와 같이 정의하고 있다. “A closure is the combination of a function and the lexical environment within which that fu..
-
[코딩 테스트] 프로그래머스 JS 연습 - 다음에 올 숫자,특이한 정렬,문자열 밀기,치킨쿠폰,등수 매기기,캐릭터의 좌표알고리즘/코딩 테스트 2023. 1. 23. 16:21
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 0. 다음에 올 숫자 문제 설명 등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. function solution(common) { //등차 수열 let 차이 = common[1] - common[0] === common[2] - common[1] ? common[1] - common[0] : false; if (차이 !== false) return common.at(-1) +차이; if (차이 === fals..