반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- cmd키 변경
- 무장cg추가하기
- monocraft
- 다각형 중점
- navmesh
- 다른 시트값
- Mac
- 엑셀 가져오기
- 한달리뷰
- 테크스트림
- 스프레드시트 사용법
- 유니티
- unity
- git
- 스프레드시트
- ilcode
- 유니티 해상도 고정
- 스프레드 시트
- navmeshagent
- 엑셀 내보내기
- unity 받기
- rider 설치
- ilviewer
- 진수 변환기
- 알고리즘
- C#
- Rider
- 라이더
- unity 구버전
- 백준
Archives
- Today
- Total
코스모스 공작소
백준 1654 랜선 자르기 (성공) 본문
반응형
https://www.acmicpc.net/problem/1654
1654번: 랜선 자르기
첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 후 K줄에 걸쳐 이미 가지고 있는 각 랜선의 길이가 센티미터 단위의 정수로 입력된다. 랜선의 길이는 231-1보다 작거나 같은 자연수이다.
www.acmicpc.net
parametric 탐색의 대표적인 문제 중 하나
이분 탐색의 방법을 이용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | #include<iostream> #include <algorithm> using namespace std; int main() { int K; cin >> K; int N; cin >> N; long long* list = new long long [K]; for (int i = 0; i < K; i++) { scanf("%lld", &list[i]); } sort(list, list + K); long long start = 1; long long end = list[K-1]; long long answer = 0; while (start <= end) { long long mid = (start + end) / 2; long long sum = 0; for (int i = 0; i < K; i++) { sum += list[i] / mid; } if (sum >= N) { start = mid + 1; if (mid > answer) { answer = mid; } } else { end = mid - 1; } } cout << answer; return 0; } | cs |
반응형
'프로그래밍 > 알고리즘' 카테고리의 다른 글
백준 2805 나무자르기 (성공) (0) | 2020.01.20 |
---|---|
힙(heap) 과 힙정렬, 그리고 우선순위 큐 (0) | 2019.12.18 |
백준 2468 안전영역 (bfs) [성공] (0) | 2019.12.18 |
백준 11047번 동전 0 [성공] (0) | 2019.12.08 |
백준 11399번 ATM [성공] (0) | 2019.12.06 |
Comments