[JavaScript/프로그래머스] 그래프 - 방의 개수
·
Coding Test/Programmers_JavaScript
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 코드 번호에 따른 이동 방향을 미리 정해두고 대각선 방향의 경우에는 두 번에 걸쳐 이동하도록 설계하였습니다. function solution(arrows) { let answer = 0; // 방의 개수를 저장할 변수 // 각 방향에 따른 좌표 변화를 저장한 배열 // prettier-ignore const move = [ [-1, 0], [-1, 1], [0, 1], [1, 1], [1, 0], [1, -1], [0, -1], [-1, -1] ]; let vertexVisited = new ..
[JavaScript/프로그래머스] 그래프 - 순위
·
Coding Test/Programmers_JavaScript
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정답 코드 Array.from()을 이용하여 초기에 크기가 정해진 배열을 생성해두는 데 사용하였습니다. function solution(n, results) { let answer = 0; // 정확하게 순위를 매길 수 있는 선수의 수를 저장하는 변수 // n+1 크기의 2차원 배열 생성. 모든 값은 false로 초기화 let graph = Array.from({ length: n + 1 }, () => Array(n + 1).fill(false)); // results 배열을 순회하며 승리한 선수..
[JavaScript/프로그래머스] 그래프 - 가장 먼 노드
·
Coding Test/Programmers_JavaScript
문제 링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 정답 코드Array.from(); JavaScript ES6에 등장한 문법으로, 이 코드에서는 length에 할당된 길이만큼의 빈 배열을 만드는 데 사용되었습니다.// edge = [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] function solution(n, edge) { // graph 배열을 초기화. 각 노드와 그 노드에 연결된 다른 노드들의 정보를 저장할 예정. const graph = Array.from({ length: n + 1 }..
[JavaScript/프로그래머스] 연습문제 - 덧칠하기
·
Coding Test/Programmers_JavaScript
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 초기 정답 코드 - 로직 설명 주석 // 함수 solution은 세 개의 매개변수를 받습니다. // n: 전체 섹션의 개수 (정수) // m: 한 번에 처리할 수 있는 섹션의 범위 (정수) // section: 처리해야 할 섹션의 목록 (정수 배열) function solution(n, m, section) { // count는 처리된 섹션의 개수를 저장합니다. let count = 0; // location은 현재 처리 위치를 저장합니다. let location = 0; // section 배열의..
[JavaScript/프로그래머스] 연습문제 - 기사단원의 무기
·
Coding Test/Programmers_JavaScript
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 초기 정답 코드 - 소인수분해 로직 사용 기존 우리가 알고 있던 약수를 구하는 가장 기본적인 for 문 로직으로는 시간 초과가 발생하였습니다. 그래서 소인수분해를 통해 얻은 각 인수들의 지수+1 을 더하는 로직을 사용하여 문제를 해결했습니다. function solution(number, limit, power) { let answer = 1; // 소인수 분해 함수 정의 function primeFactorization(num) { const factors = {}; let divisor = 2;..
[JavaScript/프로그래머스] 연습문제 - 카드 뭉치
·
Coding Test/Programmers_JavaScript
문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 초기 정답 코드 function solution(cards1, cards2, goal) { let answer = "Yes"; // 여기에 이전 사용한 카드 뭉치 명 저장 let lastCards = "cards2"; // 여기에 만들어지는 문장 저장 let sentence = []; // 각각의 카드들에서 하나씩 빼가면서 0번째 자리에 들어갈 수 있는 지 확인하는 로직 goal.forEach((g) => { if (g === cards1[0] && cards1) { sentence.push(ca..