그리디 4

백준 2212번 센서 (C++)

문제 링크 : https://www.acmicpc.net/problem/2212 2212번: 센서 첫째 줄에 센서의 개수 N(1 k; for(int i=0; i> v[i]; sort(v.begin(),v.end()); 2. ans의 값은 센서 간의 길이차의 최대값으로 초기화한다. 다음으로 센서간의 거리 차를 gap이라는 vector에 저장해준다. ans = v[v.size()-1]-v[0]; for(int j=1; j=n일 경우, 이는 센서의 갯수보다 집중국의 설치 가능 갯수가 더 많음을 뜻한다. 더 계산하지 않고 for문을 종료하면 된다. 만약 3번을 간과할 경우 Runtime Error (out of bound)가 발생하니 주의하자 4. 정답을 출력한다. #include #include #includ..

백준 2217번 로프 (C++)

문제 링크 : www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제 풀이는 다음과 같다. 1. 값을 입력 받고 내림차순으로 정렬한다. 2. 정답값을 내림차순으로 정렬된 배열의 맨 첫 번째 값으로 저장한다. 3. for문을 배열의 첫 번째 부터 마지막까지 진행한다. 정답값을 현재 정답값과 배열의 i번째 값 * i+1 중 큰 값으로 저장한다. for(int i=1; ib; } int main() { ios_base::sync_with_stdio(fals..

(LeetCode) 134. Gas Station

The link : leetcode.com/problems/gas-station/ Gas Station - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제 풀이는 다음과 같다. 1. 정답으로 출력할 출발 위치인 index, 출발 위치에 따라 변하는 가스의 충전값 indexsum, 전체 가스 충전값을 구할 totalsum 3가지 변수를 세운다. 2. for문을 gas의 size만큼 돌린다. 3. indexsum의 값은 indexsum += gas[i] - co..

#11000번 강의실 배정 (C++)

문제 링크 : www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (1 ≤ Si < Ti ≤ 109) www.acmicpc.net 주의 사항은 다음과 같다. (1) 테스트 케이스는 200,000개 이며, 강의가 끝날 수 있는 최대 시간값은 10의 9승에 달한다. (2) 고로 함부로 2중 for문을 남발하면 시간초과가 발생한다. 문제 풀이는 다음과 같다. (1) 벡터(int pair)와 우선순위 큐(int)를 구현한다. 이때 강의시간 입력을 벡터에 저장한다. (2) 벡터는 오름차순으로 정렬해준다. (3) 백터의 첫 번째 값의 두번 째 값(=첫번째 강의가 끝나는 시간)을 우선..