백준2512번 "예산" (Binary_search)

2026. 1. 28. 12:12·Algorithm/Binary_Search

문제

 

 

---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ----------------------

 

문제 접근 순서.

 

1. 어떠한 값의 범위를 두고 그 조건에 맞는 최대값을 찾는 문제이므로 "이진 탐색 (Binary_Search)" 를 생각함.

 

2. 이진탐색으로 했을시  -  1번. 인덱스로 접근할지  ( 수가 연속되지 않을 때 ) 

                                     -  2번. 연속된 수의 범위에서 접근할지  ( 연속되는 수가 가능할 때 )

 

3. 여기서는 예산 삭감에대한 비용이 연속적인 0 ~ 10,000의 값이므로 2번 방법을 선택했다. 

 

이제 코드로 작성해보자면

 

각 도시 개수, 도시에 대한 예산, 한정 예산 등을 입력 받고

해당 예산을 정렬을 진행.

현재 임의로 지정한 mid값을 기준으로 이진 탐색

해당 mid값을 출력.

 

---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ---------------------- ----------------------

 

코드

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std; 



int main()
{

	// 범위설정을 그 안에서하기

	int i_inputCityCount = 0;

	cin >> i_inputCityCount; 

	vector<int> m_vec; 


	
	for(int i =0; i<i_inputCityCount; i++)
	{
		int iNeedMoney = 0; 
		cin >> iNeedMoney; 

		m_vec.push_back(iNeedMoney);
	}

	int i_TargetMoney = 0;
	cin >> i_TargetMoney;
	
	sort(m_vec.begin(), m_vec.end());



	int left = 0;
	int right = m_vec[m_vec.size() - 1];
	int mid = (left + right) / 2;

	while(left<=right)
	{
		int sum = 0;

		for(auto& iter : m_vec)
		{
			sum += min(iter, mid);
		}

		if (sum <= i_TargetMoney)
		{
			left = mid + 1;
		}

		else
		{
			right = mid - 1;
		}
		

		mid = (left + right) / 2;
	}


	cout << mid; 

}

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

이진 탐색 (Binary_Search)  (0) 2025.11.04
'Algorithm/Binary_Search' 카테고리의 다른 글
  • 이진 탐색 (Binary_Search)
seonhwan2547
seonhwan2547
seonhwan2547 님의 블로그 입니다.
  • seonhwan2547
    seonhwan2547 님의 블로그
    seonhwan2547
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Unreal Project (17)
        • Khazan 모작 프로젝트 (2)
        • Unreal Study (10)
        • Blueprint (5)
      • Directx11 Project (11)
        • Thymesia 팀 프로젝트 (8)
        • Kaku Ancient Seal 개인 프로젝트 (2)
        • Thymesia Animation Tool 개발 (0)
      • Algorithm (6)
        • Binary_Search (2)
        • Greedy (1)
        • Dynamic Programming (1)
        • A-star (1)
      • Coding Test (31)
        • Brutal Force (2)
        • Sort (5)
        • DFS (3)
        • Binary_Search (4)
        • BFS (6)
        • Hash (2)
        • Dynamic Programming (6)
        • Greedy (1)
        • BackTracking (1)
        • Binary_Tree (1)
      • STL Container (1)
        • unorded_set (0)
        • priority_queue (1)
      • C++ 공부 및 몰랐던점 (8)
        • Smart pointer (1)
      • Visual Studio 설정관련 공부 (1)
      • Console Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 블로그 소개
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    blueprint
    Game Programming
    Unreal Engine
    hash
    Unreal
    GameProgramming
    CodingTest
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
seonhwan2547
백준2512번 "예산" (Binary_search)