Seren dev's blog
article thumbnail
[백준] 17135번 : 캐슬 디펜스 - 자바[Java]

https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 풀이 다음과 같은 흐름으로 문제를 풀었다. 1. 조합(mC3)을 사용하여 궁수 3명의 위치를 정한다. 2. 각 위치에 따라 처치하는 적의 수를 구한다. 2-1. 각 궁수마다 처치할 적을 선택한다. 2-2. 적을 처치한다. 2-3. 적을 한 칸 아래로 이동한다. 모든 적을 처치하거나, 적이 성으로 모두 이동할 때까지 2-1 ~ 2-3을 반복한다. 3. 모든 경우의 수에서 처치하는 적의 최대 수를 구한다. ma..

article thumbnail
[백준] 16637번 : 괄호 추가하기 - 자바[Java]

https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net 풀이 DFS(재귀함수)를 사용하여 풀이하였다. main() 로직 1. 수식에서 숫자와 연산자를 구분하여 각각 ArrayList numbers, ArrayList operators에 저장한다. 2. 재귀함수를 호출하여 DFS를 수행한다. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = In..

article thumbnail
[백준] 17070번 : 파이프 옮기기 1 - 자바[Java]

https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 풀이 먼저 파이프가 놓여 있는 위치를 ArrayList pipe에 저장하고, 놓여있는 방향은 dir에 저장한다. (0 = 가로, 1 = 세로, 2 = 대각선) 그 다음 재귀함수를 호출하여 모든 경우의 수를 탐색한다. ArrayList pipe = new ArrayList(); pipe.add(new Point(0,0)); pipe.add(new Point(0,1)); mo..