내 풀이
챗 GPT 보안
코드 설명
- 입력 처리:
- K: 갖고 있는 랜선의 개수입니다.
- N: 필요한 랜선의 개수입니다.
- arr: 각 랜선의 길이를 저장하는 배열입니다. 이 배열의 크기는 K입니다.
- 이진 탐색 초기화:
- min = 1: 최소 길이로 설정합니다. 랜선은 길이가 최소 1 이상이므로 1로 시작합니다.
- max = arr.Max(): 주어진 랜선 중 가장 긴 길이를 max로 설정합니다.
- result: 가능한 최대 랜선 길이를 저장할 변수입니다.
- 이진 탐색 반복:
- mid: 현재 탐색 중인 랜선 길이의 중간값을 구합니다.
- count: 현재 mid 길이로 랜선을 잘랐을 때 얻을 수 있는 랜선의 개수를 계산합니다.
- 조건문:
- count >= N: 필요한 랜선 개수 이상이 나오면 result를 업데이트하고, 더 긴 길이를 탐색합니다 (min을 증가).
- count < N: 필요한 랜선 개수보다 부족하면, 더 짧은 길이를 탐색합니다 (max를 감소).
- 결과 출력:
- 반복이 끝나면, 가능한 최대 랜선 길이가 result에 저장되며 이를 출력합니다.
주의사항
이진 탐색 과정에서 mid 계산 및 count 계산 시 큰 수가 나올 수 있으므로 long 타입을 사용해 오버플로우를 방지합니다.
'코딩 문제 풀이' 카테고리의 다른 글
백준 2566번 최댓값 (0) | 2024.08.12 |
---|---|
백준 - 2501 약수 구하기 (0) | 2024.08.12 |
백준 10994 별 찍기 - 19 (0) | 2024.08.09 |
백준 10990번 별 찍기 -15 (0) | 2024.08.08 |
백준 1008번 A/B (0) | 2024.08.02 |