잡다한 배똥월드

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

+ Recent posts