본문 바로가기

Problem Solving/Baekjoon1321

[백준] 17088 등차수열 변환 - Brute Force / Java • 문제 링크 17088번: 등차수열 변환 크기가 N인 수열 A = [A1, A2, ..., AN]이 있을 때, 모든 1 ≤ i < N에 대해서, Ai+1-Ai가 모두 일치하면 등차수열이라고 한다. 예를 들어, [3], [6, 6, 6], [2, 8, 14, 20], [6, 4, 2]는 등차수열이고, [4, 5, 4], [6, 3, 1] www.acmicpc.net • 풀이 과정 등차수열의 공차는 모든 항에 대해서 일치하므로, 수열의 첫째, 둘째 항의 공차의 값에 따라 다른 모든 항의 공차를 일치하게 연산할 수 있는지 확인한다. 첫째, 둘째 항 각각에 -1, 0, 1 를 더하는 경우, 즉 3 * 3 = 9가지의 경우를 가지므로 2중 for문 내부에 clone() 함수를 통해 배열을 초기화하여 각각의 경우.. 2022. 8. 10.
[백준] 15683 감시 - Brute Force / Java • 문제 링크 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net • 풀이 과정 크기가 n * m 인 2차원 배열 map 에 cctv 및 벽의 정보를 입력받고, cctv 의 좌표(y, x) 와 해당 cctv 의 종류(type) 및 감시 가능 방향(dir)을 제네릭이 Node 클래스인 List 객체 list 에 저장한다. 이때 n * m 에 cctv 의 개수와 벽의 개수를 뺀 값이 사각지대의 개수의 초기값이 되며, 해당 값을 cnt, list 에서 cctv 정보를 가져올 인덱스 값을 idx, 탐색할 2차원.. 2022. 8. 9.
[백준] 16637 괄호 추가하기 - Brute Force / Java • 문제 링크 16637번: 괄호 추가하기 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net • 풀이 과정 재귀 호출 함수를 통해 다음 연산에 괄호를 사용해 연산할 지, 그대로 연산할 지 두가지 경우를 모두 계산한다. 크기가 수식의 길이 n 인 char 배열 input 을 생성해 입력받은 수식을 저장한 후, 인덱스 변수를 idx 로 정의하고 정수의 경우 input[idx] - '0' 로 호출, 연산자는 input[idx] 로 호출한다. 호출한 정수와 연산자에 맞게 연산값을 반환할 cal 함수를 생성하고, 연산의 결과가 누적될.. 2022. 8. 8.
[백준] 3019 테트리스 - Brute Force / Java • 문제 링크 3019번: 테트리스 테트리스는 C열 필드위에서 플레이하는 유명한 게임이다. 필드의 행의 수는 무한하다. 한 번 움직일 때, 아래와 같은 일곱가지 블록 중 하나를 필드에 떨어뜨릴 수 있다. 블록을 떨어뜨리기 전에 www.acmicpc.net • 풀이 과정 필드의 각 칸의 높이가 주어지고 특정 블록을 필드에 배치시키는 것을 구현했을 때, 블록과 블록 사이, 또는 블록과 바닥 사이 빈 공간이 없도록 배치시켜야한다. 이때 블럭이 밑면과 맞닿았을 때 빈 공간이 발생할 수 있는 값을 표현하면 아래와 같다. 0 0 0 0 0 1 0 0 0 0 2 예시로 높이가 2 1 1 인 필드에 문제에 제시된 4번 블럭 1 0 0 을 배치시켰을 때는 아래와 같으며, 필드와 블럭의 각 자리의 수를 뺀 값이 모두 일치.. 2022. 8. 7.
[백준] 2210 숫자판 점프 - Brute Force / Java • 문제 링크 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net • 풀이 과정 5 * 5 크기의 String 배열 map 에 입력받은 값을 저장하고 배열을 전체 탐색하여 지정한 시작점의 값과 좌표를 매개 변수로 전달하여 재귀 함수를 실행한다. 시작점에서부터 4 방향 탐색을 수행하여 이동할 위치가 배열의 범위 내인지 확인한다. 재귀 호출을 통해 이동을 수행하며 String 형 매개 변수 s 에 이동할 위치의 값을 누적하고, 해당 위치의 좌표와 함께 전달한다. s 의 길이.. 2022. 8. 6.
[백준] 16938 캠프 준비 - Brute Force / Java • 문제 링크 16938번: 캠프 준비 난이도가 10, 30인 문제를 고르거나, 20, 30인 문제를 고르면 된다. www.acmicpc.net • 풀이 과정 문제의 개수 n, 조건값 l, x, r 과 각 문제의 난이도를 입력받아 크기가 n인 배열 arr 에 저장 및 오름차순 정렬한다. 재귀 호출 함수에 문제 난이도 값의 합 sum, 선택된 난이도의 최솟값 min, 최댓값 max 와 함수 내부의 반복문의 시작값 idx, 재귀 함수의 깊이 depth 값을 매개 변수로 전달하여 실행한다. 배열에 저장된 값을 sum 변수에 더한 값, 해당 값을 최소값, 최대값과 비교해 갱신한 값, 중복된 문제를 선택하지 않기 위해 i + 1 과 문제 하나가 추가로 선택됐음을 나타내는 depth + 1 을 매개 변수로 전달해 .. 2022. 8. 5.