본문 바로가기

백준 알고리즘44

[BOJ]11657번: 타임머신 www.acmicpc.net/problem/11657 음의 가중치가 있는 최단 경로 문제입니다. 벨만 포드 알고리즘을 통해 해결할 수 있습니다. 코드: github.com/cottory/algorithm/blob/master/BOJ/BOJ11657.cc 2020. 9. 6.
[BOJ]14238번: 출근 기록 www.acmicpc.net/problem/14238 BaekBaekE님의 풀이(100100e.tistory.com/168)를 바탕으로 해결한 문제입니다. B 정보를 탐색하기 위해서는 이전(before) 정보를 알아야 합니다. C 정보를 탐색하기 위해서는 이전의 이전 정보까지 알아야 합니다. (before & beforeBefore) 이를 재귀함수로 구현하여 주어진 A,B,C 갯수로 0일부터 N일까지의 기록을 채워봅니다. 아무거나 맞는 순열을 하나 찾으면 되므로 최초로 true를 리턴하는 것을 정답으로 합니다. 또한, 중복 방문을 막기 위해 visited[idx][A][B][C][before][bbefore]라는 방문배열을 사용했습니다. 코드: github.com/cottory/algorithm/blob.. 2020. 9. 6.
[BOJ]17836번: 공주님을 구해라! https://www.acmicpc.net/problem/17836 BFS 문제입니다. 그램을 얻은 상태, 안 얻은 상태에 탐색할 수 있는 영역이 달라지기 때문에 방문표시에서 구분을 해줘야 합니다. 그래서 방문표시 배열을 visited[2][N][M]으로 선언하고 BFS 탐색을 해주면 해결이 가능합니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ17836.cc 2020. 9. 1.
[BOJ]9328번: 열쇠 https://www.acmicpc.net/problem/9328 jaimemin님 풀이를 참고하여 해결하였습니다. (https://jaimemin.tistory.com/692) 문제 풀이에 필요한 아이디어는 아래와 같습니다. 1. 모든 칸에서 입장이 가능하다는 조건을 위해 주어진 그래프 테두리에 빈 칸을 추가해서 모든 칸 방문하게 하기 2. 열쇠를 새로 얻으면 그 지점부터 bfs를 다시 시작합니다. 3. 열쇠나 문서를 얻었으면 재방문을 막기 위해 빈 칸으로 바꿔버립니다. 위와 같은 기법을 통해 bfs를 돌리면 문제를 해결할 수 있습니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ9328.cc 2020. 9. 1.