[백준] 10816. 숫자 카드 2
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 이분 탐색으로 그냥 해당 값이 있는지 찾기만 하면 되는 게 아니라 몇 개 있는지를 찾아야 한다. 따라서 상한선과 하한선을 찾아서 몇 개인지 개수를 계산하면 된다. 입력 값을 배열에 저장하고 배열을 정렬한다. 상한선과 하한선을 찾고, (상한선 - 하한선)이 해당 값의 개수가 된다. 예를 들어 [1, 1, 2, 2, 2, 3]과 같이 배열이 있을 때, 값 2의 상한..
[백준] 1931. 회의실 배정
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 이번 문제는 그리디 문제로, 회의 종료 시간이 빠른 순서대로 정렬한 뒤 차례대로 회의를 진행하면 된다. 그런데 주의할 점은, 만약 회의 종료 시간이 같다면 회의 시작 시간이 빠른 순으로 정렬해야 한다. 예를 들어, 다음과 같이 회의가 있다고 가정하자. 1 ~ 3 4 ~ 8 8 ~ 8 만약 회의 시작 시간이 빠른 순으로 정렬하는 것을 고려하지 않고 다음 순서로 진행한다면, 1 ~ 3 8 ~ 8 4 ~ 8 8 ~ 8 회의를 진행한 후 preMeetingEndTime 변수의 값은 8이 되어 4 ~8 회의를 진행할 수 ..
[백준] 11055. 가장 큰 증가하는 부분 수열
https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가하는 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는 www.acmicpc.net 중복되는 연산(합)이 있기 때문에 dp를 떠올릴 수 있다. dp를 하는 과정에서 메모이제이션하는 배열을 dp 배열이라 하고, 사용자에게 입력받은 값을 input 배열이라고 한다면, input[i]가 input[i - 1]보다 작다면, 인덱스 i보다 작은 인덱스를 내림차순으로 접근하며 input[i]보다 작은 input[j]의 인덱스 j를..