[C++] 프로그래머스 징검다리건너기

2024. 3. 19. 12:31·Algorithm/Programmers
#include <string>
#include <vector>

using namespace std;

bool FindAnswer(int n, int k, const vector<int> &stones)
{
    int count = 0;
    
    for(int i = 0; i < stones.size(); i++)
    {
        if(stones[i] - n <= 0)
        {
            count++;
        }
        else
        {
            count = 0;
        }
        
        if(count >= k)
        {
            return true;
        }
    }
    
    return false;
}

int solution(vector<int> stones, int k) 
{    
    int start = 0;
    int end = 0;
    int mid;
    
    //find end
    for(int i = 0; i < stones.size(); i++)
    {
        end = max(end, stones[i]);
    }
    
    while(start <= end)
    {
        mid = ( start + end ) / 2;
        if(FindAnswer(mid, k, stones))
        {
            end = mid - 1;
        }
        else
        {
            start = mid + 1;
        }
    }
    
    
    return start;
}

 

풀이

1. 예상되는 n을 디딤돌마다 뺏을 때, 0이 연속되는 디딤돌이 k이상일 경우를 찾아야한다.

2. 이분탐색을 이용하여 값의 범위를 좁혀가며 답을 찾아간다.

 

 

느낀점

- 이분탐색에 대해서 더 풀어봐야겠다. 함수에 있는 식까진 나왔는데 이분탐색이 안 떠올라서 효율성테스트를 떨어졌었다.

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/64062

 

저작자표시 (새창열림)

'Algorithm > Programmers' 카테고리의 다른 글

[C++] 프로그래머스 요격시스템  (0) 2024.04.03
[C++] 프로그래머스 이진 변환 반복하기  (0) 2024.04.01
[C++] 프로그래머스 숫자게임  (0) 2024.03.05
[C++] 프로그래머스 최고의 집합  (0) 2024.02.29
[C++] 프로그래머스 야근 지수  (0) 2024.02.29
'Algorithm/Programmers' 카테고리의 다른 글
  • [C++] 프로그래머스 요격시스템
  • [C++] 프로그래머스 이진 변환 반복하기
  • [C++] 프로그래머스 숫자게임
  • [C++] 프로그래머스 최고의 집합
chanheess
chanheess
'왜' 그렇게 했는가?에 대한 생각으로 공부 및 작업의 저장관리
  • chanheess
    왜 그렇게 생각했는가?
    chanheess
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Backend Programming
      • Game Programming
        • Unreal
        • DirectX
      • C++
        • Memo
        • Basic
        • Effective Modern
      • Algorithm
        • Memo
        • Baekjoon
        • Programmers
        • HackerRank, LeetCode
      • Data Structure
      • Design Pattern
      • Etc
        • Memo
        • Daily Log
        • Book
  • 최근 글

  • 최근 댓글

  • 태그

    프로그래머스
    위클리 챌린지
    dp
    JWT
    Java
    JPA
    티스토리챌린지
    알고리즘
    dfs
    spring
    SpringSecurity
    오블완
    c++ 기초 플러스
    백준
  • hELLO· Designed By정상우.v4.10.0
chanheess
[C++] 프로그래머스 징검다리건너기
상단으로

티스토리툴바