관리 메뉴

Mini

[틀림] 프로그래머스 징검다리 건너기 // 매개변수 탐색 본문

Algorithm/매개변수 탐색

[틀림] 프로그래머스 징검다리 건너기 // 매개변수 탐색

Mini_96 2025. 5. 2. 23:28

https://school.programmers.co.kr/learn/courses/30/lessons/64062?language=java#

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

* 시도1

1명씩 보내보면서 (무한대)

20만의 배열을 돌면서

연속된 0의 갯수가 k 이상이면 불가능

 

* 풀이

한명씩 보내보는대신,

x명일때 가능한가?를 탐색

 

go함수 구현 시도1

한명씩 보내는대신, x와 arr의 차이를 구해보면 됨

이게 음수이면, 갈수없는곳임.

(한번에 이 발상을 하기가 좀 빡세긴 함...)

//x명이 건널수있는가
    boolean go2(int x){
        int cnt=0;
        for(int i=0;i<arr.length;++i){
            if(cnt>=k){
                return false;
            }
            if(arr[i]-x < 0){
                cnt++;
                continue;
            }
            cnt=0;
        }
        return true;
        // return cnt<k
    }

문제점 : 마지막에 몰려있는경우, 체크가안됨.

return cnt<k로 바꿔야함.

go함수 구현2

boolean go(int x){
        int cnt=0;
        for(int i=0;i<arr.length;++i){
            if(arr[i]-x < 0){
                cnt++;
                if(cnt>=k){
                    return false;
                }
            } else {
                cnt=0;
            }
        }
        return true;
    }

음수가 나오면, 그때그때, 판단하는 방법

마지막에 몰려있는 경우도 커버가능