Goodland Electricity

sun202x·2022년 10월 4일
0

알고리즘

목록 보기
10/49

사이트: HackerRank
난이도: 미디움
분류: Greedy

문제

power plants를 설치여부를 표현하는 배열을 받고, power plants의 영향범위 값 k를 전달받는다. 해당 데이터들을 가지고 전 지역에 전기를 공급하기 위한 최소 설치 비용을 반환하는 문제이다.

1. 나의 풀이

해당 문제를 풀다가 집중력이 너무 떨어져 시간이 오래 걸린다고 판단하여, 다른 사람의 풀이를 참조하였다. 문제 자체가 어렵진 않았지만, 집중력 관리를 해야겠다고 생각했다.

2. 다른사람의 풀이

function pylons(k, arr) {
    let result = 0, 
        i = 0,
        location = i + (k - 1);
    
    while (i < arr.length) {
        if (arr[location] === 1) {
            i = location + k;
            result += 1;
            location = i + (k - 1);
            
            if (location >= arr.length) {
                location = arr.length - 1;
            }
        } else {
            location--;
            
            if (location < 0 || location <= i - k) {
                return -1;
            }
        }
    }
    
    return result;
}

power plants 설치가 가능할 경우 k - 1 만큼 증가 시키고, 설치 불가할 경우 이전 인덱스 값으로 계속 돌아가는 형식으로 코드가 작성되었다.

profile
긍정적으로 살고 싶은 개발자

0개의 댓글