프로그래머스 4

프로그래머스: 가장 먼 노드 javascript

문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/49189 함수 설명 노드의 개수 n과 각 노드 간 연결을 나타낸 두 개의 숫자로 구성된 배열을 ex) [1, 3] 성분으로 갖는 배열 vertex 를 인자로 입력받습니다. 노드 1로부터 각 노드로 가는 최단거리를 구했을 때, 최단거리 중의 최곳값에 해당하는 노드가 몇 개인지 반환하는 문제입니다. 정답코드 const solution = (n,vertex) => { const nodeAndVertex = new Map(); vertex.forEach(([from,to])=> { switch(nodeAndVertex.has(from)){ case true: nodeAndVertex.set(from..

코딩테스트 2023.08.31

프로그래머스 동적계획법: 정수 삼각형 javascript

문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/43105 함수설명 함수는 완전 이진 트리 자료구조를 나타내는 2차원 배열 triangle을 입력으로 받습니다. 각 성분배열은 트리의 한 레벨을 의미합니다. 루트 노드부터 출발하여 리프 노드로 가는 경로에서, 노드에 있는 값들을 모두 더하여 구할수있는 "경로 합"값중 최댓값을 반환해야 합니다. 정답 코드 const solution = (triangle) => { const depth = triangle.length; const memo = [...Array(depth)].map((x,i) => [...Array(i + 1)].fill(0)); triangle[depth -1].forEach((..

코딩테스트 2023.08.30

프로그래머스 동적계획법: N으로 표현 javascript

문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42895 함수설명 함수는 두 자연수 N과 number를 입력으로 받습니다. N은 1 이상 9 이하의 수입니다. 숫자 N과 사칙연산만을 사용하여 number를 만드는데 필요한 N의 최소 개수를 반환해야 합니다. 만약 그 수가 8보다 크다면 -1을 반환합니다. 정답코드 const solution = (N, number) => { if (number === N){ return 1 } const memo = [...Array(9)].map(x => new Set()); memo[1].add(N); for (let i = 2; i < 9; i++){ memo[i].add(Number(`${N}`.re..

코딩테스트 2023.08.29

자바스크립트: 프로그래머스 lv1 모의고사

문제링크 https://school.programmers.co.kr/learn/courses/30/lessons/42840 함수설명 1,2, 그리고 3번 총 3명의 학생들이 답안을 찍는 방식이 보기에 주어져있습니다. 답안지 answer을 입력받아 세 학생들의 시험지를 채점한 후, 최고점을 받은 학생들의 번호를 담은 배열을 반환여야 합니다. 정답코드 //찍는 주기에 맞게 채점하여 점수를 반환 const scorePaper = (studentStyle, answers) => { const range = studentStyle.length; const scoredTestPaper = answers.filter((answer, index) => answer === studentStyle [index % rang..