일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lis
- dfs
- 시뮬레이션
- BeautifulSoup
- 순열
- 세그먼트 트리
- 비트마스크
- 중복 순열
- 백트래킹
- 링크드리스트
- 그리디
- 빠른 입출력
- 조합
- 우선순위 큐
- 이분 탐색
- 문자열
- SSAFY
- 크루스칼
- 메모리풀
- BFS
- DP
- 피보나치 수
- 스택
- 큐
- Knapsack
- 완전 탐색
- 재귀
- 클래스
- 분할 정복
- MST
- Today
- Total
목록그리디 (6)
작심 24/7
1082번: 방 번호 문방구에서 파는 숫자의 개수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 문방구에서 파는 숫자는 0보다 크거나 같고, N-1보다 작거나 같은 정수이다. 예를 들어, N=4이면, 문방구에서 파는 www.acmicpc.net 가장 큰 수를 만들기 위한 우선순위는 아래와 같다. 1. 자릿수가 최대한 길어야 한다. 2. 맨 앞자리부터 최대한 큰 수가 들어가 있어야 한다. 먼저 1번을 만족하려면 무조건 숫자를 많이 모아야 하기 때문에 비용이 가장 적은 숫자를 최대한 많이 산다. 이때, 비용이 가장 적은 숫자가 0이라면 맨 앞자리에 0이 오면 안 되므로 비용이 두 번째로 적은 숫자를 하나 사서 맨 앞자리에 배치한 다음에 나머지는 비용이 가장 적은 숫자로 채운다. 2번을 만족하기 위해..
1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 수학적으로 풀어도 되지만 백트래킹으로 풀어보았다. 계산에 사용되는 M개의 알파벳을 모아놓고 9부터 M개의 숫자를 순열로 대입하였다. ex) ADC -> 3개의 숫자 9, 8, 7을 순열로 배치시키면 알파벳 ADC는 987, 978, 897, 879, 798, 789 이렇게 숫자가 대입될 수 있다. map을 이용해서 각 알파벳에 숫자를 대입해주고 배치가 완료되면 단어의 합을 계산해주고 최댓값을 갱신한다. 이때 stoi를 이용하여 계산을 했었는데 시간 초과 나..
15748번: Rest Stops The first line of input contains four integers: $L$, $N$, $r_F$, and $r_B$. The next $N$ lines describe the rest stops. For each $i$ between $1$ and $N$, the $i+1$-st line contains two integers $x_i$ and $c_i$, describing the position of the $i$-th rest st www.acmicpc.net 가치가 가장 큰 stop부터 가야 하므로 가치를 기준으로 내림차순 정렬한다. stop에서 Bessie가 쉴 수 있는 시간은 (John의 1미터 당 걸리는 시간 - Bessie의 1미터 당 걸..
1493번: 박스 채우기 세준이는 length × width × height 크기의 박스를 가지고 있다. 그리고 세준이는 이 박스를 큐브를 이용해서 채우려고 한다. 큐브는 정육면체 모양이며, 한 변의 길이는 2의 제곱꼴이다. (1×1×1, 2×2×2, www.acmicpc.net 탐욕법으로 가장 큰 큐브부터 박스에 넣어본 후 남은 부분들을 세 가지로 나누어 재귀로 계속 반복한다. 그림과 같이 현재 가장 큰 큐브 l, w, h를 제외하고 남은 1번, 2번, 3번 상자들은 각각 다시 하나의 상자로 생각하여 현재 가장 큰 큐브를 제외하고 남은 세 가지 상자들을 다시 각각 하나의 상자로 생각하고 ... 이 과정을 가로, 세로, 높이 중 하나라도 0이 될 때까지 계속 반복한 후 빠져나와서 카운트를 출력한다. 가로..
13904번: 과제 예제에서 다섯 번째, 네 번째, 두 번째, 첫 번째, 일곱 번째 과제 순으로 수행하고, 세 번째, 여섯 번째 과제를 포기하면 185점을 얻을 수 있다. www.acmicpc.net 점수를 최대한 많이 받아야 하기 때문에 점수를 기준으로 내림차순 한 후 score 배열을 만들어 마감일에 따라 받을 수 있는 점수를 저장한다. W D 60 4 50 2 40 4 30 3 20 1 10 4 5 6 내림차순 한 상태에서 첫 번째 인덱스부터 score 배열에 넣으면 score[4] = 60 '4일 안에 과제를 하면 60점을 얻는다' 라는 의미이다. 마찬가지로 두 번째 인덱스도 score 배열에 넣으면 score[2] = 50 이 된다. 세 번째 인덱스를 score 배열에 넣으려 하니 score[4..
1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 제품 사용 순서대로 돌면서 세 가지 경우를 확인해주고 그 경우에 따라 처리해주면 된다. 1. 현재 제품이 멀티탭에 꽂혀있을 경우 -> 그냥 넘어간다. 2. 멀티탭이 다 안 채워져 있을 경우 -> 현재 제품의을 저장한다. 3. 플러그를 뽑아야하는 경우 -> 남은 순서동안 멀티탭에 꽂혀있는 제품을 쓰지 않는다면 그 제품의 플러그를 뽑는다. -> 남은 순서동안 멀티탭에 꽂혀있는 제품이 모두 쓰인다면 가장 마지막으로 쓰이는 제품의 플러그를 뽑는다. 이대로 구현해주면 끝..