전체 글107 [이분탐색] BOJ 2512: 예산 https://www.acmicpc.net/problem/2512 예산 내에서 지자체가 요구한 예산들 다 커버할 수 있으면 지자체 중 요구한 예산이 가장 큰 지자체의 예산을, 그렇지 않으면 특정 상한선을 정해서 그 위로는 자르고, 전체 예산안을 만족할 수 있는 상한선 중 가장 큰 값을 반환하면 된다. 전자는 그냥 전체 요구 예산의 합이 예산 한도보다 낮으면 최대값을 반환하면 될 것이고, 후자 쪽이 binary search를 통해 상한선의 최대값을 찾아야 하는 문제이다. #include #include #include using namespace std;int answer;void findMaximum(vector &budget, int min, int max, int maxBudget){ if(mi.. 2024. 11. 6. [Greedy] 백준 4796: 캠핑 https://www.acmicpc.net/problem/4796 예전에 설탕 문제 풀었던 것을 기억하자. https://gaebaldosamoodosa.tistory.com/79 연속된 P일 중 L일만 사용 가능하다는 것을 일종의 큰 상자로 생각하자. 요컨대 박스 무게는 P이고 안에 포장 빼고 실제 내용물이 L 들어 있는 것이다. 그리고 남는 여분은 작은 상자로 포장된다고 생각하자. 큰 상자를 고르는 것이 다른 상자의 선택에 영향을 미치지 않고, 매 순간 가능하다면 작은 상자 대신 큰 상자를 선택하는 것이 결국 가장 많은 내용물을 가져가는 결과를 도출할 것이다. 다시 말해 한 단계의 선택의 다음 단계의 선택에 영향을 미치지 않고, 매 순간 최적의 해가 문제 전체의 최적의 해가 될 것이기 때문에 Gree.. 2024. 10. 23. [이분 탐색] 백준 2805: 나무 자르기 https://www.acmicpc.net/problem/2805 이분 탐색의 기본을 사용하는 문제이다. 먼저, 절단기 높이의 최소값은 0이고, 최대값은 나무들 중 가장 높은 나무의 높이이다. 따라서 초기에 min = 0, max = max(tree) 라고 하자. 우리가 구해야 할 것은 "원하는 만큼 나무를 가져갈 수 있는 절단기의 최대 높이" 이다. 따라서 절단기 높이에 따라 구할 수 있는 나무의 양이 요구치보다 적을 때는 절대 정답이 될 수 없되 절단기를 더 낮추어야 하므로, max = mid-1로 설정하고 다시 이분탐색을 진행한다. 반면 절단기 높이에 따라 구할 수 있는 나무의 양이 요구치보다 많을 때는 정답이 될 수 있되 절단기를 더 높여서도 해당하는 만큼의 나무를 구할 수 있는지 알아봐야 한다... 2024. 10. 22. [Unity] JSON 이용하여 데이터 저장하기 JSON(JavaScript Object Notation)은 데이터를 교환하고 저장하기 위한 텍스트 기반 데이터 교환 표준이다. 사실 이러한 정의보다, 오늘 포스팅할 'JSON 파일을 이용해 Unity에서 데이터를 저장하고 불러오는 방법'을 알아보기 위해서는 다음 사항을 숙지하는 것이 더 중요하다. 1. JSON으로 만들 코드는 반드시 클래스 형식이어야 한다.2. Class를 string 형식의 JSON 파일로 변환하고, 해당 파일을 저장한 후, 다시 string 형식을 1.에서 정의한 class 형식으로 변환시켜 데이터를 복구한다. 이 포스팅에서는 플레이어 캐릭터의 좌표, 회전값, 레벨을 json 파일로 저장하고, 다시 불러오는 기능을 구현한 예제를 통해 JSON을 이용하여 데이터를 저장하고 불러오는.. 2024. 8. 28. 이전 1 2 3 4 ··· 27 다음