본문 바로가기

반응형

코딩 테스트

[백준] 11057 - 오르막수(javascript) 나의 풀이 2차원 배열을 사용하는데, - 끝 번호가 어떠냐에 따라 나올 수 있는 가지 수를 저장한다. - 길이가 길어짐에 따라 값이 변하는걸 저장한다. 2가지 경우에 따라 변하면서, 그 사이에서 규칙성이 있기에 2차원 배열로 dp를 저장해서 사용하는 것 같다. let fs = require("fs"); let input = Number(fs.readFileSync("/dev/stdin").toString().trim()); const dp = [new Array(10).fill(1)]; for (let x = 1; x < input; x++) { dp[x] = [1]; for (let y = 1; y < 10; y++) { dp[x][y] = (dp[x - 1][y] + dp[x][y - 1]) % 10.. 더보기
[백준] 9095 - 1, 2, 3 더하기(javascript) 문제 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 나의 풀이 2가지 방식으로 풀이가 가능하다. dp [i] = dp [i - 3] + dp [i - 2] + dp [i - 1] 임을 이용한 dp 방법, 0부터 1,2,3을 더하면서 경우의 수를 모두 매칭하는 재귀 방법 DP let fs = require("fs"); let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n') const caseLEN = Number(input[0]); const dp = { 0: 0, 1: 1, 2: 2, 3: 4, }; let max = Math.max.. 더보기
[프로그래머스] level1. 신고 결과 받기 (javascript) 문제 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 나의 풀이 function solution(id_list, report, k) { var answer = new Array(id_list.length).fill(0); const reportedObj = {} report.forEach(el=>{ const arr = el.split(" ") if(reportedObj[arr[1]]){ if(!reportedObj[arr[1]].includes(arr[0])){ reportedObj[arr[1]].p.. 더보기
[프로그래머스] level1. 최소직사각형 (javascript) 문제 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 나의풀이 function solution(sizes) { let arr = [0,0] for(let i = 0 ; i b-a) if(b>arr[0]){ arr[0] =b } if(s>arr[1]){ arr[1] =s } } return arr[0]*arr[1] } 결과값이 결국 두 변(가로,세로)을 곱하는 것이므로 가로,세로에 얽매일 필요가 없었다. sort로 한쪽.. 더보기
[프로그래머스] level3. 순위 (javascript) 문제 코딩테스트 연습 - 순위 5 [[4, 3], [4, 2], [3, 2], [1, 2], [2, 5]] 2 programmers.co.kr 나의 풀이 모르겠다. 참조 [프로그래머스/그래프, 플로이드] lv3. 순위 (JavaScript) 정확하게 순위를 매길 수 있는 선수의 의미는 다른 모든 노드와 그래프로 연결되어 있는 경우를 의미한다. 플로이드 와샬을 활용한 풀이가 가장 출제의도에 맞는 풀이인 것 같다. velog.io 위 블로그와 동일한 코드입니다. 위 블로그를 보면서 따라 만들어 보고, 왜 이런지 고민해보았다. function solution(n, results) { var answer = 0; //배열 선언 let arr = Array.from({length:n} , (_,i)=>Array... 더보기
[프로그래머스] level3. 가장 먼 노드 (javascript) 문제 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 나의 풀이 (javascript) 프로그래머스 가장 먼 노드 프로그래머스 level3 그래프 - 가장 먼 노드 javascript를 이용한 문제풀이 입니다. velog.io 처음에 node의 방향성을 생각하다 못풀었다. 너무 어렵게 생각하지 말고, node 단위로 생각하면 쉽게 접근이 가능할 것 같다. function solution(n, edge) { let visited = new Array(n+1).fill(0) let level = new Array(n+1).fill(0) let queue = []; queue.push.. 더보기
[프로그래머스] level3. 디스크 컨트롤러 (javascript) 문제 프로그래머스 문제 링크 나의 풀이 틀려서 다른 블로그를 보고 공부하였습니다. [프로그래머스/Javascript] 디스크 컨트롤러 - Kyun2da Blog 1️⃣서론 Kyun2da.github.io function solution(jobs) { let j = 0; let time = 0; let sum = 0; let priorityQueue = [] jobs.sort((a,b)=>a[0]-b[0]) while(jobs.length>j || priorityQueue.length !==0){ if(jobs.length>j && time >= jobs[j][0]){ priorityQueue.push(jobs[j++]); priorityQueue.sort((a,b)=>{ return a[1]- b[1] .. 더보기
[프로그래머스] SQL- JOIN 관련 모든 문제 프로그래머스의 JOIN에 관한 모든 문제를 모았습니다. 문제 1. 없어진 기록 찾기 - 천재지변으로 인해 일부 데이터가 유실되었습니다. 입양을 간 기록은 있는데, 보호소에 들어온 기록이 없는 동물의 ID와 이름을 ID 순으로 조회하는 SQL문을 작성해주세요. SELECT OUTS.ANIMAL_ID,OUTS.NAME FROM ANIMAL_OUTS OUTS LEFT OUTER JOIN ANIMAL_INS INS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID WHERE INS.ANIMAL_ID IS NULL ORDER BY INS.ANIMAL_ID LEFT OUTER JOIN을 사용하면 FROM에서 사용한 테이블 오른쪽으로 붙여 사용할 수 있다. ON 을 통해 두 테이블을 붙일 때 기준이 되는 .. 더보기

반응형