전체보기106 [코딩테스트] Codility 5-4 MinAvgTwoSlice (JavaScript) - 평균의 수학적 특성 활용 문제 링크 : https://app.codility.com/programmers/lessons/5-prefix_sums/min_avg_two_slice/ Solution 정답률 : 100% 시간복잡도 : O(N) 시간복잡도를 줄이기 위해 수학적 인사이트가 필요했다. 두 수의 평균은 두 수 중 작은 수보다 크거나 같다 정수 m, n이 있고, m 2022. 1. 26. [코딩테스트] Codility 5-1 PassingCars (JavaScript) 문제 링크 : https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/ Solution1 정답률 : 100% 시간복잡도 : O(N) East 방향의 자동차를 east 배열을 선언하여 따로 넣기 특정 East 방향의 자동차보다 큰 자동차들 개수에서, East 방향의 자동차 수를 뺀 수를 count에 더해주기 function solution(A) { let count = 0; // 배열 A에서 east 방향의 자동차만 담는 배열을 따로 선언하기 let east = []; for (let i=0; i 1000000000 ? -1 : result; } 2022. 1. 26. [코딩테스트] Codility 4-4 MissingInteger (JavaScript) 문제 링크 : https://app.codility.com/programmers/lessons/4-counting_elements/missing_integer/ Solution 1 정답률 : 66% 시간복잡도 : N^2 코드 작성 전달인자인 배열 A의 중복을 제거한 뒤, 오름차순으로 정렬하고, 0 이상의 엘리먼트만 필터합니다. 1부터 100,000까지 양의 정수를 엘리먼트로 갖는 배열 number를 선언합니다. 두 배열의 0번 인덱스를 비교하여, A의 엘리먼트 중 비어있는 양의 정수의 최소값을 찾을 수 있습니다. function solution(A) { // 배열 A의 중복 제거, 오름차순 정렬, 양의 정수만 필터링한 배열 positive 선언 let newA = [...new Set(A)]; let a.. 2022. 1. 21. [Heroku] Node.js 서버 및 DB 무료 배포/호스팅 (MySQL & Sequelize) Sequelize Version : ^6.12.0-alpha.1 mysql Version : 2.18.1 mysql2 Version : 2.3.3 1. create new app을 통해 서버 배포 준비하기 heroku 터미널 사용과 서버 배포 방법은 유튜브와 구글링을 통해 쉽게 찾을 수 있기 때문에 생략했습니다. 여기서는 MySQL과 Sequelize를 사용한 DB 연결을 중점적으로 포스팅했습니다. 그래도 서버 배포를 위해 입력해야할 기본 코드들은 아래와 같이 정리했습니다. 서버 index.js 파일에서 port에 환경변수 process.env.PORT를 할당해야합니다. 저는 express 라이브러리를 사용했으며, 사용한 코드는 아래와 같습니다. // server의 index.js const port =.. 2022. 1. 19. [MySQL & Sequelize] 날짜(date)로 DB 데이터 조회 (에러핸들링) DB의 EmploymentRate 테이블에서 날짜 데이터 date(YYYY-MM-DD)을 통해 특정 레코드를 조회하려고 했다. 문제상황 날짜 데이터를 입력해도 원하는 날짜의 데이터를 조회할 수 없었다. 원인 Sequelize의 쿼리문이 SQL 쿼리문으로 바뀌는 과정에서 날짜 데이터가 바뀌는 것을 확인했다. DB에서 조회할 레코드의 date 값은 '2022-01-19 00:00:00' 으로 저장되어 있다. 그래서 Sequelize 문법에서 조건문에 '2022-01-19'를 입력했다. 그러나 SQL 쿼리문에는 '2022-01-18 15:00:00'이 입력되어 있었다. // Sequelize를 통한 쿼리문 const { EmploymentRate } = require('../../models') Employm.. 2022. 1. 19. [chart.js] x축 날짜 데이터 형식 설정 (date) YYYY-DD-MM 형식의 날짜 데이터를 차트의 x축에 표시하면 아래 사진과 같이 깔끔하지 않습니다. 여기서는 chart.js의 문법을 이용해 날짜 데이터 형식을 바꾸는 방법을 포스팅했습니다. 추가 라이브러리 chart.js의 추가 라이브러리인 date-fns adapter가 필요합니다. npm에서 설치하거나, script 태그에서 CDN 링크를 사용하시면 됩니다. 저는 index.html 파일에 CDN 링크를 입력했습니다. chart.js 라이브러리 : https://github.com/chartjs/awesome#adapters date-fns adapter : https://github.com/chartjs/chartjs-adapter-date-fns # npm 설치 명령어 npm install d.. 2022. 1. 19. [Chart.js] 차트 축의 최소/최대값 설정하기 차트 y축의 최소값을 100으로 설정하는 예시 코드입니다. 최대값은 min 대신 max를 입력하시면 됩니다. const ctx = canvasEle.getContext('2d'); const myChart = new Chart(ctx, { type: 'line', data: { // 생략 }, options: { scales: { y: { min : 100 // y축 최소값을 100으로 설정 }, }, } }); 2022. 1. 19. [코딩테스트] Codility 4-3 MaxCounters (JavaScript) 문제 링크 : https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/ Solution 1 정답률 : 100% 시간복잡도 : O(N+M) 코드작성 우선 결과를 담을 길이가 N인 arr 엘리먼트를 선언해야 한다. arr 엘리먼트의 최대값인 max 변수와 max counter의 기준이 될 변수 maxCounter도 따로 선언했다. 시간복잡도는 O(N^2)보다 효율적인 코드를 작성해야 한다. 따라서 for 문 내에서는 조건문을 통해 값을 할당하는 코드만 작성했고, 시간복잡도가 O(N)이 되는 Math.max, fill 등의 메소드는 사용하지 않았다. function solution(N, A) { let arr = Array(N.. 2022. 1. 19. 이전 1 2 3 4 5 6 7 8 ··· 14 다음 반응형