728x90
코딩 테스트 풀이 체크리스트 |
|
2시간 내에 풀었는가? | O |
본인의 실력으로 풀었는가? | O |
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
자바 코드에 설명이 적혀 있어서 참고 하면서 보면 됩니다~
[Java] 프로그래머스 - 배달 (2단계)
코딩 테스트 풀이 체크리스트 2시간 내에 풀었는가? O 본인의 실력으로 풀었는가? O 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을
b-sseung.tistory.com
function solution(N, road, K) {
let answer = new Array();
let r = new Array(N);
let times = new Array(N);
let check = new Array(N);
for (var i = 0; i < times.length; i++) {
times[i] = new Array(N);
check[i] = false;
}
for (var i = 0; i < road.length; i++) {
var a = road[i][0] - 1;
var b = road[i][1] - 1;
var time = road[i][2];
if (r[a] == null) r[a] = new Road();
if (r[b] == null) r[b] = new Road();
r[a].addRoad(b);
r[b].addRoad(a);
times[a][b] = times[a][b] == null ? time : Math.min(times[a][b], time);
times[b][a] = times[b][a] == null ? time : Math.min(times[b][a], time);
}
const func = function(K, start, k) {
if (K < k) return;
if (answer.indexOf(start) == -1) answer.push(start);
let arr = r[start].arr;
for (var i = 0; i < arr.length; i++) {
var num = arr[i];
if (check[num]) continue;
check[num] = true;
func(K, num, k + times[start][num]);
check[num] = false;
}
}
check[0] = true;
func(K, 0, 0);
return answer.length;
}
class Road {
constructor() {
this.arr = new Array();
}
addRoad(num) {
if (this.arr.indexOf(num) == -1) this.arr.push(num);
}
}
테스트 1 〉 | 통과 (0.36ms, 29.9MB) |
테스트 2 〉 | 통과 (0.32ms, 30.1MB) |
테스트 3 〉 | 통과 (0.38ms, 30MB) |
테스트 4 〉 | 통과 (0.36ms, 30.2MB) |
테스트 5 〉 | 통과 (0.34ms, 30MB) |
테스트 6 〉 | 통과 (0.21ms, 30.1MB) |
테스트 7 〉 | 통과 (0.22ms, 30.2MB) |
테스트 8 〉 | 통과 (0.40ms, 30MB) |
테스트 9 〉 | 통과 (0.36ms, 30MB) |
테스트 10 〉 | 통과 (0.39ms, 29.8MB) |
테스트 11 〉 | 통과 (0.38ms, 30MB) |
테스트 12 〉 | 통과 (0.38ms, 30MB) |
테스트 13 〉 | 통과 (0.40ms, 30.1MB) |
테스트 14 〉 | 통과 (0.99ms, 30.2MB) |
테스트 15 〉 | 통과 (1.58ms, 30.1MB) |
테스트 16 〉 | 통과 (0.35ms, 29.9MB) |
테스트 17 〉 | 통과 (0.24ms, 30MB) |
테스트 18 〉 | 통과 (0.51ms, 30.1MB) |
테스트 19 〉 | 통과 (1.01ms, 30.1MB) |
테스트 20 〉 | 통과 (0.56ms, 30.2MB) |
테스트 21 〉 | 통과 (1.19ms, 30.3MB) |
테스트 22 〉 | 통과 (0.75ms, 30.1MB) |
테스트 23 〉 | 통과 (1.55ms, 30MB) |
테스트 24 〉 | 통과 (4.05ms, 33MB) |
테스트 25 〉 | 통과 (1.53ms, 30.2MB) |
테스트 26 〉 | 통과 (1.70ms, 30.1MB) |
테스트 27 〉 | 통과 (1.68ms, 29.8MB) |
테스트 28 〉 | 통과 (2.22ms, 31.9MB) |
테스트 29 〉 | 통과 (4.43ms, 32.2MB) |
테스트 30 〉 | 통과 (2.23ms, 32.1MB) |
테스트 31 〉 | 통과 (0.45ms, 30.1MB) |
테스트 32 〉 | 통과 (8337.31ms, 33.1MB) |
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[JavaScript] 프로그래머스 - 2 x n 타일링 (2단계) (0) | 2022.07.14 |
---|---|
[Java] 프로그래머스 - 2 x n 타일링 (2단계) (0) | 2022.07.14 |
[Java] 프로그래머스 - 배달 (2단계) (0) | 2022.07.12 |
[Java] 프로그래머스 - 두 개 뽑아서 더하기 (1단계) (0) | 2022.07.11 |
[Java] 프로그래머스 - 괄호 회전하기 (2단계) (0) | 2022.07.06 |