티스토리 뷰
https://www.acmicpc.net/problem/14226
처음에 dfs로 접근했다가 단순히 클립보드에 내용을 복사하는 경우에서 시간만 카운트시켜야하는데 파라미터 조정을 생각하기가 조금 까다로웠습니다.
그래서 bfs로 문제를 조금 바꿔 풀었습니다. (큐에 넣는 내용이나 파라미터에 넣는 내용이나 비슷하지만 처음에 1차원 배열 dp랑 섞어서 풀다보니 바꾸기가 음 좀 그랬다......)
큐의 원소로는 화면 개수, 클립보드 개수, 시간 이렇게 3개의 int 값을 활용합니다.
그리고 1,2,3번의 경우를 따져 화면 개수, 클립보드 쌍을 거치지 않은 경우 큐에 해당 시간 + 1 값을 포함하여 넣습니다. 큐에는 단순히 시간이 증가하는 경우만 들어가므로 가장 먼저 화면의 개수가 S와 일치하는 경우 시간을 리턴하면 가장 빠른 시간임을 알 수 있습니다.
코드는 다음과 같습니다.
'알고리즘 > 백준' 카테고리의 다른 글
백준 14466 소가 길을 건너간 이유6 c++ (0) | 2021.11.18 |
---|---|
백준 4811 알약 C++ (0) | 2021.11.06 |
백준 16936 나3곱2 python3 (0) | 2021.09.21 |
백준 C++ 1525 퍼즐 (0) | 2021.09.20 |
백준 1647 도시 분할 계획 C++ (0) | 2021.09.11 |
댓글