반응형 전체 글163 [Python] Baekjoon - 17135. 캐슬 디펜스 백준의 17135번 캐슬 디펜스 문제는 그래프 탐색 및 브루트 포스 알고리즘을 이용하여 푸는 문제이다. 성 안에 있는 3명의 궁수가 성 밖의 적을 매 턴 공격하며 게임에서 최대로 무찌를 수 있는 적의 수를 구하는 문제이다. 문제 정보 알고리즘 분류 그래프 탐색 브루트포스 난이도 골드 4 캐슬 디펜스 문제 요약 NxM 크기의 격자 칸에는 칸마다 최대 한명의 적이 있을 수 있고, 격자칸 아래 N+1행은 궁수를 배치할 수 있는 성이다. 궁수는 거리 D 이하(맨해튼 거리)의 적 중 가장 가까운 적(거리가 같다면 가장 왼쪽에 있는 적)을 한 턴에 한 명씩 공격할 수 있다. 모든 궁수는 동시에 공격하며, 여러 궁수가 같은 적을 공격할 수도 있다. 한 턴이 지나면 모든 적들은 한 칸씩 내려온다. 성에 들어온 적은 게.. 2021. 7. 12. [Python] Baekjoon - 3184. 양 백준 3184번 양 - 그래프 탐색 알고리즘인 DFS 또는 BFS를 이용하여 해결해야 하는 문제이다. solved.ac 난이도는 실버 2로, 기본적인 그래프 탐색을 구현할 줄만 알면 손쉽게 풀리는 문제이다. 문제 정보 알고리즘 분류 그래프 탐색 난이도 실버 2 요약 R행 C열 직사각형 모양의 마당에 빈칸(.), 울타리(#), 양(o), 늑대(v)가 있다. 상하좌우로 이동하며 울타리를 지나지 않고 갈 수 있으면 같은 영역에 있다고 한다. 한 영역 내에 양이 늑대보다 많으면 늑대가 쫓겨나고, 늑대가 같거나 더 많으면 양은 모두 잡아먹힌다. 하루 밤이 지나고 난 후 최종적인 양과 늑대의 수를 구하여라. 문제 풀이 과정 DFS/BFS로 각 영역의 양과 늑대의 수를 센다. 양이 더 많으면 양의 수를 증가시키고, .. 2021. 7. 12. [Python] Baekjoon - 19236. 청소년 상어 백준 19236번 청소년 상어 - 백트래킹과 시뮬레이션을 이용하여 해결해야 하는 문제이다. solved.ac 난이도는 골드 2로, 구현이 꽤나 까다로운 문제였다. 문제 정보 알고리즘 분류 백트래킹, 시뮬레이션 난이도 골드 2 문제 풀이 과정 문제를 딱 본 순간부터 엄청나게 복잡한 문제를 만났구나.. 싶었다. DFS 백트래킹을 통해 문제를 풀어보려고 하는데, 처음에는 현재 상태(물고기 위치, 방향)를 전역 변수로 저장해두도록 구현을 했다. 그렇게 하니 재귀를 빠져나올 때 물고기를 원래 상태로 되돌려 놔야 했다. 숫자가 큰 물고기부터 방향을 반대로 생각하고 되돌려봤는데 처음 상태랑 다른 결과가 나왔다. 물고기가 이동할 수 없을 때 될 때까지 방향을 돌리기 때문에 처음 방향이 어땠는지를 알 방법이 없었다. 따.. 2021. 7. 12. 이전 1 ··· 38 39 40 41 다음 반응형