본문 바로가기

Algorithm/BOJ172

[BOJ]14889번: 스타트와 링크 문제: https://www.acmicpc.net/problem/14889 시뮬레이션 문제입니다. C++ 기준 넥퍼뮤를 사용해서 두 팀으로 나눈 후, 팀을 나눈 각 경우마다 능력치값을 구해서 최소값을 구하도록 했습니다. 코드: https://github.com/cottory/algorithm/blob/master/BOJ/BOJ14889.cc 2020. 7. 20.
[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.