본문 바로가기

반응형

코딩 연습

[백준] 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] .. 더보기
[프로그래머스] level1. 위클리 챌린지 2주차 (javascript) 문제 프로그래머스 문제 링크 나의 풀이 function solution(scores) { //배열 뒤집기 for(let i =0 ; i < scores.length;i++){ for(let j = i ; j < scores[0].length;j++){ let tmp = scores[i][j] scores[i][j] = scores[j][i] scores[j][i] = tmp; } } //최고, 최저점수 제거 for(let i = 0 ; i < scores.length;i++){ const max = Math.max(...scores[i]); const min = Math.min(...scores[i]); if(scores[i][i] === max){ scores[i].splice(i,1); if(scor.. 더보기

반응형