전체 글

전체 글

    [JS][프로그래머스]나누어 떨어지는 숫자 배열

    문제 번호 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 알고리즘 분류 문제 풀이 문제의 내용은 어려운게 없었다. 문제에서 주어지는 숫자들을 모두 검사하여 문제에서 주어진 또 다른 숫자로 나누어 떨어지는지만 검사하면 된다. 이때 Array 프로토타입인 sort 메서드를 이용하였는데 sort 함수의 기본 비교조건은 배열의 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬된다고한다. 처음엔 이걸 몰라서 그냥 sor..

    정규식

    모든 파일 검색 /[a-zA-Z]:\\.+\.(jpg|gif|png)/gi \.(txt|exe|png) 또는 .[^\.]*\.(txt|exe|png) == 수정중 ==

    GCD와 LCM

    function greatestCommonDivisor(a, b) {return b ? greatestCommonDivisor(b, a % b) : Math.abs(a);} function leastCommonMultipleOfTwo(a, b) {return (a * b) / greatestCommonDivisor(a, b);} function gcdlcm(a, b) { return [greatestCommonDivisor(a, b),leastCommonMultipleOfTwo(a, b)]; } function gcd(a, b) { if (a < b) { let temp = a; a = b; b = a; } while (b !== 0) { let n = a % b; a = b; b = n; } retur..

    모던 자바스크립트 Deep Dive

    22장 this - 객체는 상태를 나타내는 프로퍼티와 동작을 나타내는 메서드를 하나의 논리적인 단위로 묶은 복합적인 자료구조이다. - this는 자신이 속한 객체 또는 자신이 '생성할' 인스턴스를 가리키는 자기 참조 변수이다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. 함수를 호출하면 argument 객체와 this가 암묵적으로 함수 내부에 전달된다. this를 통해 자신이 속한 객체 또는 자신이 생성할 인스턴스의 프로퍼티나 메서드를 참조할 수 있다. this 바인딩은 함수 호출 방식에 의해 동적으로 결정된다. - this 바인딩은 함수 호출 시점에 결정된다. - 일반 함수 호출에서는 기본적으로 this에 전역 객체가 바인딩된다. - 콜백 함수가..

    모던 자바 스크립트 Deep Dive 21

    21장 빌트인 객체 - 표준 빌트인 객체는 ECMAScript 사양에 정의된 객체를 말하며, 애플리케이션 전역의 공통 기능을 제공한다. - 호스트 객체는 사양에 정의도어 있지 않지만 자바스크립트 실행 환경(브라우저 또는 Node.js환경)에서 추가로 제공하는 객체를 말한다 - 사용자 정의 객체는 표준 빌트인 객체와 호스트 객체처럼 기본 제공되는 객체가 아닌 사용자가 직접 정의한 객체를 말한다. - 원시값을 객체처럼 사용하면 자바스크립트 엔진은 암묵적으로 연관된 객체를 생성하여 생성된 객체로 프로퍼티에 접근하거나 메서드를 호출하고 다시 원시값으로 되돌린다.(래퍼 객체) - 전역 객체 자신은 어떤 객체의 프로퍼티도 아니며 객체의 계층적 구조상 표준 빌트인 객체와 호스트 객체를 프로퍼티로 소유한다는 것을 말한..

    [JS][백준]11650_좌표 정렬하기

    문제 번호 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 알고리즘 분류 정렬 문제 풀이 C++ 에서 처럼 구조체를 사용하여 좌표들을 입력받은 후 정렬을 해주려고했다. 하지만 JS에는 구조체가 존재하지 않는다. function과 배열을 사용하여 C++에서의 구조체 배열처럼 사용할 순 있지만 그렇게 할 경우 시간초과에 걸린다. 그래서 filter 매서드를 사용하여 입력을 받았다. const fs = require('fs'); const input = fs.re..

    [JS][백준]2108_통계학

    문제 번호 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 알고리즘 분류 구현, 정렬 문제 풀이 특별한 알고리즘은 없는 문제이다. 문제에서 주어진 내용대로 구현해서 출력만 하면된다. 산술평균 // 산술 평균 let sum = 0; for (let i = 0; i < input.length; i++) { sum += Number(input[i]); } arithmeticMean = Math.round(sum / input.length); console.log(arithmeticMean); 중앙값 // 중앙값. mid = Nu..

    [JS][백준]1260_DFS와 BFS

    문제 번호 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 알고리즘 분류 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 문제 풀이 기본적인 DFS와 BFS를 구현하면 되는문제이다. DFS구현에는 STACK을 사용하는것이 편리한데 C++과는 다르게 JS에는 stack이라는 자료구조를 사용할 수 있는 라이브러리가 따로 존재하지 않는다. 또한 BFS는 Queue를 사용하여 구현하는것이 편리한데 Queue를 사용할 수 있는 라이브러리또한 존재하지 않는다. 하지만 ..