본문 바로가기

백준34

[BOJ]17135번: 캐슬 디펜스 문제: https://www.acmicpc.net/problem/17135 시뮬레이션 문제입니다. 아래와 같은 조건들을 문제 요구사항대로 구현해야 합니다. 1. 궁수 배치 2. 궁수가 쏠 타겟 정하기 3. 적들 한 칸씩 내리기 궁수가 쏠 타겟을 정하는 건 우선순위 큐를 사용해서 tuple(거리, X좌표(가로), Y좌표(세로))로 담은 다음 PQ.top()값을 사용하는 것으로 해결하였습니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ17135.cc 2020. 7. 22.
[BOJ]15683번: 감시 문제: https://www.acmicpc.net/problem/15683 시뮬레이션 문제입니다. 하나의 CCTV가 감시하는 방향은 4방향이고, 최대 8개의 CCTV가 있으므로 CCTV를 셋팅하는 경우의 수는 4^8입니다. 1. CCTV를 셋팅하는 경우의 수 만들기 2. (여러 경우의 수 중 하나의 케이스에 대해) CCTV를 쏴서 없어지는 빈 칸 갯수 COUNTING 구현을 단순하게 하기 위해서 CCTV를 쏘는 로직(func 메서드)은 오직 한 방향으로 쏘는 것만 구현했습니다. 그 후에 func 메서드를 여러 번 호출함으로써 두 방향, 세 방향, 네 방향을 탐색하는 경우를 처리했습니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ15683.cc 2020. 7. 17.
[BOJ]17090번: 미로 탈출하기 문제: https://www.acmicpc.net/problem/17090 TOP-DOWN 방식 DP로 풀고 시간초과가 나서 다르게 접근한 문제입니다. 문제가 되는 상황은 싸이클이 발생하는 상황을 어떻게 처리하느냐입니다. 해결 방법은 1. 기저사례 칸 좌표를 모두 큐에 넣습니다. 기저사례 칸이라 함은 현재 칸에서 주어진 방향으로 점프하면 밖으로 나가는 좌표를 의미합니다. 2. 큐에 들어가 있는 좌표에서 인접한 UDLR 방향 네 개의 좌표를 탐색합니다. 인접한 좌표 중에, 인접한 좌표 -> 기저 사례 칸으로 점프하는 인접한 좌표를 새로 큐에 넣습니다. (이 인접한 좌표가 다시 기저 사례 칸이 되는 방식입니다.) 3. BFS방식으로 방문 표시를 하면서 2번을 반복하며 기저 사례칸과 연결되는 모든 칸을 세주면.. 2020. 7. 16.
[BOJ]16637번: 괄호 추가하기 문제: https://www.acmicpc.net/problem/16637 시뮬레이션 문제입니다. 저는 nCr combination 코드를 통해 괄호를 만들 수 있는 경우의 수를 생성해주었습니다. 두 가지 유의할 점이 있습니다. 1. 최대값이 음수가 나올 수 있다는 점 2. 계산 중간에 INT 범위를 넘어갈 수 있다는 점 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ16637.cc 2020. 7. 15.