백준 2805번 나무 자르기 [C/C++]
2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 문제 나무를 필요한 만큼만 잘라서 가져감. M미터의 나무를 집에 가져가기 위해 절단기에 설정할 수 있는 높이의 최대값을 구하는 프로그램을 작성하라. 입력 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) int형은 4바이트(32비트)이며, 수의 범위는 -2,147,483,648 ~ 2,147,483,647"이다..
2021.02.28
백준 1920번 수 찾기 [C/C++]
1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 정수가 존재하는지 확인만 하면 되기에, 탐색 문제라고 생각했다. 이분 탐색으로 접근해서 풀었는데 바로 성공한 문제이다. 그리고 mid를 구하는 코드부분에서 start+end / 2의 부분에서 연산자 우선순위를 고려하지 않고 코드를 짜서 디버깅할 때 헤매었다. #define _C..
2021.02.28
백준 1654번 랜선 자르기 [C/C++]
1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 문제 주어진 K개의 랜선으로 N개의 랜선을 만들어라. 300cm 랜선으로 140짜리 랜선을 두 개 만들면 나머지 20는 버려야 한다. 입력 K는 1이상 10,000이하의 정수이다. N은 1이상 1,000,000이하이다. 출력 N개를 만들 수 있는 랜선의 최대 길이를 센티미터 단위의 정수로 출력한다. 풀이 문제를 읽어도 무엇을 사용해야 하는지 감이 안잡혀서, 알고리즘 분류를 보았는데 이분 탐색을 활용한다고 한다. 다른 블로그에서 이분 ..
2021.02.24