Algorithm/문제풀이 82

[그리디 알고리즘] ATM

예제 입력 1 5 3 1 4 3 2 예제 출력 1 32 - 그리디 알고리즘으로 접근하고자 할 때는 반례를 찾고, 최적이 맞다고 생각되면 증명이 필요하다. - 정답은 적게 걸리는 시간으로 정렬하여 푼다. - 증명은 아래와 같다. : t1 ~ t5는 1~5번 사람이 돈을 인출하는데 걸리는 시간이며, P1 ~ P5는 각 사람이 돈을 인출 완료하기까지 기다려야 하는 시간, 각 번호는 t가 작은 순으로 오름차순으로 정렬되어있다고 가정. : P1 = p1 : P2 = p1 + p2 : P3 = p1 + p2 + p3 : .... : P5 = p1 + ... + p5 Psum = 5*p1 + 4*p2 + ... + p5 따라서 p1이 작을수록 유리하다. #include constexpr int MAX_COUNT = ..

[그리디 알고리즘] 회의실배정

예제 입력 1 11 1 4 3 5 0 6 5 7 3 8 5 9 6 10 8 11 8 12 2 13 12 14 예제 출력 1 4 https://www.acmicpc.net/problem/1931 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net - 정답은 회의가 일찍 끝나는 시간 기준으로 그리디 알고리즘으로 풀 수 있다. - 회의 끝나는 시간으로 정렬하여 순서대로 처리하여 풀 수 있는데, 주의할 점은 회의가 끝나는 시간이 같을 경우 회의가 일찍 시작하는 순으로 정렬하여야 한다. 회의 시작시간과 끝시간이 같은 경우를 처리하여야 하기 때문인데, 이를 구현하지 않으면 아래 케이스를 풀 수 없다. 1 1 1 2

[그리디 알고리즘] 동전 0

예제 입력 1 10 4200 1 5 10 50 100 500 1000 5000 10000 50000 예제 출력 1 6 예제 입력 2 10 4790 1 5 10 50 100 500 1000 5000 10000 50000 예제 출력 2 12 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net - 이 문제의 조건에서는 주어지는 동전이 Ai는 Ai-1의 배수라고 했으므로, 그리디 알고리즘을 ..

[BFS] 4연산

예제 입력 1 7 392 예제 출력 1 +*+ 예제 입력 2 7 256 예제 출력 2 /+*** 예제 입력 3 4 256 예제 출력 3 ** 예제 입력 4 7 7 예제 출력 4 0 예제 입력 5 7 9 예제 출력 5 -1 예제 입력 6 10 1 예제 출력 6 / https://www.acmicpc.net/problem/14395 14395번: 4연산 첫째 줄에 정수 s를 t로 바꾸는 방법을 출력한다. s와 t가 같은 경우에는 0을, 바꿀 수 없는 경우에는 -1을 출력한다. 가능한 방법이 여러 가지라면, 사전 순으로 앞서는 것을 출력한다. 연산의 아스키 코드 순서는 '*', '+', '-', '/' 이다. www.acmicpc.net - 문제의 조건에서 s와 t의 최대값이 10의 9승이므로 (=10억) 배..

[BFS] 적록색약

예제 입력 1 5 RRRBB GGBBB BBBRR BBRRR RRRRR 예제 출력 1 4 3 https://www.acmicpc.net/problem/10026 10026번: 적록색약 문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속한다. (색상의 차이를 거의 느끼지 못하는 경우도 같은 www.acmicpc.net - 동일한 색깔끼리 BFS를 이용하여 그룹..

[BFS] 레이저 통신

예제 입력 1 7 8 ....... ......C ......* *****. ....*.. ....*.. .C..*.. ....... 예제 출력 1 3 https://www.acmicpc.net/problem/6087 6087번: 레이저 통신 문제 크기가 1×1인 정사각형으로 나누어진 W×H 크기의 지도가 있다. 지도의 각 칸은 빈 칸이거나 벽이며, 두 칸은 'C'로 표시되어 있는 칸이다. 'C'로 표시되어 있는 두 칸을 레이저로 통신하기 위해서 설치해야 하는 거울 개수의 최솟값을 구하는 프로그램을 작성하시오. 레이저로 통신한다는 것은 두 칸을 레이저로 연결할 수 있음을 의미한다. 레이저는 C에서만 발사할 수 있고, 빈 칸에 거울('/', '\')을 설치해서 방향을 90도 회전시킬 수 있다. www.ac..

[BFS] 아기 상어

예제 입력 1 3 0 0 0 0 0 0 0 9 0 예제 출력 1 0 예제 입력 2 3 0 0 1 0 0 0 0 9 0 예제 출력 2 3 예제 입력 3 4 4 3 2 1 0 0 0 0 0 0 9 0 1 2 3 4 예제 출력 3 14 예제 입력 4 6 5 4 3 2 3 4 4 3 2 3 4 5 3 2 9 5 6 6 2 1 2 3 4 5 3 2 1 6 5 4 6 6 6 6 6 6 예제 출력 4 60 예제 입력 5 6 6 0 6 0 6 1 0 0 0 0 0 2 2 3 4 5 6 6 0 0 0 0 0 2 0 2 0 0 0 0 3 9 3 0 0 1 예제 출력 5 48 예제 입력 6 6 1 1 1 1 1 1 2 2 6 2 2 3 2 2 5 2 2 3 2 2 2 4 6 3 0 0 0 0 0 6 0 0 0 0 0 9 예..

[BFS] 탈출

예제 입력 1 3 3 D.* ... .S. 예제 출력 1 3 예제 입력 2 3 3 D.* ... ..S 예제 출력 KAKTUS 예제 입력 3 3 6 D...*. .X.X.. ....S. 예제 출력 3 6 예제 입력 4 5 4 .D.* .... ..X. S.*. .... 예제 출력 4 4 https://www.acmicpc.net/problem/3055 3055번: 탈출 문제 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제일 친한 친구인 비버의 굴로 가능한 빨리 도망가 홍수를 피하려고 한다. 티떱숲의 지도는 R행 C열로 이루어져 있다. 비어있는 곳은 '.'로 표시되어 ..

[BFS] 움직이는 미로 탈출

예제 입력 1 ........ ........ ........ ........ ........ ........ ........ ........ 예제 출력 1 1 예제 입력 2 ........ ........ ........ ........ ........ ........ ##...... ........ 예제 출력 2 0 예제 입력 3 ........ ........ ........ ........ ........ .#...... #....... .#...... 예제 출력 3 0 예제 입력 4 ........ ........ ........ ........ ........ .####### #....... ........ 예제 출력 4 1 예제 입력 5 ........ ........ ........ .....

[BFS] 벽 부수고 이동하기 3

예제 입력 1 1 4 1 0010 예제 출력 1 5 예제 입력 2 1 4 1 0100 예제 출력 2 4 예제 입력 3 6 4 1 0100 1110 1000 0000 0111 0000 예제 출력 3 15 예제 입력 4 6 4 2 0100 1110 1000 0000 0111 0000 예제 출력 4 9 https://www.acmicpc.net/problem/16933 16933번: 벽 부수고 이동하기 3 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net - 추가된 조건은, 이동하지 않고 같은 칸에 머무르는 경우에도 낮..