Algorithm 36

[BOJ] - 14888. 연산자 끼워넣기

[URL] https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. www.acmicpc.net [풀이 과정] * 재귀 DFS 1. 재귀 DFS를 활용하여 가능한 연산자 조합을 구한다. ex) [+] [-] [*] [%] [2] [0] [1] [0] 일때 (1) + + * (2) + * + (3) * + + 3가지 조합 가능 2. 각각의 조합에 따라 연산 실행 3. 후보자 배열에 넣..

Algorithm/백준 2019.04.09

[BOJ] - 14889. 스타트와 링크

[URL] https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net [풀이 과정] * DFS 재귀 두번 해야한다. 1. 1~N까지의 수를 두개(A팀, B팀)로 나눠 모든 경우의 수 계산 2. 각각의 경우의 수에서 A팀 중 두개씩 묶어서 능력치 계산 ex) N= 6, A팀 : [1, 2, 3] B팀 : [4, 5, 6] 일 때 A팀 능력치: map[1][2] + map[2][1] + map[2][3] + map[3][2] + map[1][3] + map[3][1] B팀 능력치..

Algorithm/백준 2019.04.09

[BOJ] - 17136. 색종이 붙이기

[URL] https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크기가 10×10인 종이 위에 붙이려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 0 또는 1이 적혀 있다. 1이 적힌 칸은 모두 색종이로 덮여져야 한다. 색종이를 붙일 때는 종이의 경계 밖으로 나가서는 안되고, 겹쳐 www.acmicpc.net [문제 풀이] * 재귀 DFS 1. map[][] == 1인부분 vector v에 info형태(x, y)로 저장 2. v의 갯수만큼 완전 탐..

Algorithm/백준 2019.04.09

[BOJ] - 16235. 나무 재테크

[URL] https://www.acmicpc.net/problem/16235 16235번: 나무 재테크 부동산 투자로 억대의 돈을 번 상도는 최근 N×N 크기의 땅을 구매했다. 상도는 손쉬운 땅 관리를 위해 땅을 1×1 크기의 칸으로 나누어 놓았다. 각각의 칸은 (r, c)로 나타내며, r은 가장 위에서부터 떨어진 칸의 개수, c는 가장 왼쪽으로부터 떨어진 칸의 개수이다. r과 c는 1부터 시작한다. 상도는 전자통신공학과 출신답게 땅의 양분을 조사하는 로봇 S2D2를 만들었다. S2D2는 1×1 크기의 칸에 들어있는 양분을 조사해 상도에게 전송하고, 모든 www.acmicpc.net [문제 풀이] * 시뮬레이션 1. vector , queue 로 구현 2. STL - sort를 사용하여 비교적 쉽게 정..

Algorithm/백준 2019.04.08

[BOJ] - 17135. 캐슬 디펜스

[URL] https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net ​ [풀이 과정] ​ * 재귀DFS + 시뮬레이션 (주의 사항) - 각각의 (a1, a2, a3)에 대한 enemy벡터 초기화 - target 조건 1, 2 ​ ​ 1. map[][] == 1인 곳 (x,y)좌표 데이터 enemy 벡터로 저장 ​ 2. go()를 통해 가능한 궁수의 위치 3곳 구한다. (재귀 DFS) --> (a1, a2, a3) ​ 3. 각각의 (a1, a2, a3)에 대해 캐슬..

Algorithm/백준 2019.04.08

[BOJ] - 15683. 감시

[URL] https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감시할 수 있는 방법은 다음과 같다. 1번 CCTV는 한 쪽 방향만 감시할 수 있다. 2번과 3번은 두 방향을 감시할 수 있는데, 2번은 감시하는 방향이 서로 반대방향이어야 하고, 3번은 직각 방향이어야 한다. 4번은 세 방향, 5번은 네 방향을 감시할 www.acmicpc.net [풀이 과정] * 재귀 DFS 완전탐색, 시뮬레이션 1. map[][] == 1, 2, 3, 4, 5 인 경우 cctv구조체로 ..

Algorithm/백준 2019.04.08