Algorithm/baekjoon 126

Two Dots=========

📍 문제 설명 https://www.acmicpc.net/problem/16929 16929번: Two Dots 첫째 줄에 게임판의 크기 N, M이 주어진다. 둘째 줄부터 N개의 줄에 게임판의 상태가 주어진다. 게임판은 모두 점으로 가득차 있고, 게임판의 상태는 점의 색을 의미한다. 점의 색은 알파벳 대문 www.acmicpc.net 💡 접근 모든 좌표에 대해서 상하좌우로 뻗어나간 후 사이클이 만들어지는지 확인하고 만들어지면 바로 끝내버리면 되는 문제 문제 조건에서 사이클은 점이 현재 3개 이상 연결되어 있고 다음 지점이 첫 지점이면 사이클이 된다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputS..

Algorithm/baekjoon 2022.03.02

2048

📍 문제 설명 https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 💡 접근 각 위치에서 4방향으로 모두 이동하게 재귀 호출하는 것까지는 문제가 없었는데 해당 방향으로 볼록을 이동시키는 부분에서 너무 어려웠다. 해당 부분은 타 블로그를 참고했다.. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader..

Algorithm/baekjoon 2022.03.01

가르침

📍 문제 설명 https://www.acmicpc.net/problem/1062 1062번: 가르침 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다 작거나 같은 자연수 또는 0이다. 둘째 줄부터 N개의 줄에 남극 언어의 단어가 주어진다. 단어는 영어 소문 www.acmicpc.net 💡 접근 조합 문제. 단어의 시작과 끝은 무조건 'anta', 'tica'로 끝나기때문에 최소 5글자를 배워야 한다. 모든 단어에 대해서 확인하는 것은 메모리 낭비가 될 수 있으므로 5글자를 제외한 단어만 본다. 해당 단어들을 제외한 단어들로 조합을 돌려서 읽을 수 있는 단어인지 확인하면된다. 👩‍💻 코드 import java.io.BufferedReader; import j..

Algorithm/baekjoon 2022.03.01

부분수열의 합

📍 문제 설명 https://www.acmicpc.net/problem/14225 14225번: 부분수열의 합 수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들 www.acmicpc.net 💡 접근 부분 수열의 합 중에서 제일 작은 자연수를 찾는 문제 1부터 증가시키면서 셋에 담겨있는 합인지 확인하고 존재하지 않는 값이 나올 때 멈춰주면 된다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStr..

Algorithm/baekjoon 2022.03.01

N-Queen

📍 문제 설명 https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 💡 접근 이번 문제는 퀸이 어떻게 움직이는지를 몰라서 타 블로그 풀이를 참고했다. 퀸은 상하좌우, 양방향 대각선 한 방향으로 이동할 수 있다. 퀸의 위치를 담는 배열을 하나 선언한다. arr[n] = i -> n열의 i행에 배치시킨다. 그리고 0열부터 시작하여 퀸을 배치할 수 있는 모든 경로에 대해서 재귀 호출한다. 모든 열에 배치시킬 때 마다 경우의 수를 증가 시켜주고 리턴한다. 👩‍💻 코드 im..

Algorithm/baekjoon 2022.02.27

에너지 모으기

📍 문제 설명 https://www.acmicpc.net/problem/16198 16198번: 에너지 모으기 N개의 에너지 구슬이 일렬로 놓여져 있고, 에너지 구슬을 이용해서 에너지를 모으려고 한다. i번째 에너지 구슬의 무게는 Wi이고, 에너지를 모으는 방법은 다음과 같으며, 반복해서 사용할 수 있 www.acmicpc.net 💡 접근 첫번째와 마지막을 제외하고 재귀를 돌면 되는 문제 현재 리스트의 인덱스를 제거하고 확인해보고 난 뒤에 해당 인덱스에 그 값을 다시 넣어줘야 한다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; publi..

Algorithm/baekjoon 2022.02.24

두 동전

📍 문제 설명 https://www.acmicpc.net/problem/16197 16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, www.acmicpc.net 💡 접근 구슬 탈출이랑 비슷한 문제였는데, 버튼을 10번 이상이 아니라 10번 보다 많이 누르면 -1를 출력해야한다.... 각 동전은 동시에 움직이지만 한 동전이 움직일 수 없는 경우 제자리에 있고 다른 동전은 움직일 수 있으면 움직여야한다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java...

Algorithm/baekjoon 2022.02.23

컨베이어 벨트 위의 로봇

📍 문제 설명 https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 💡 접근 문제에서 주어진 순서대로 구현하면 되는 시뮬레이션 문제였다. 벨트와 로봇이 회전할 때 로봇이 움직이는게 아닌 벨트가 움직여서 따라가는 거라 내구도의 변화가 없다. 이 부분에서 실수를 해서 시간이 꽤 오래걸렸다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io..

Algorithm/baekjoon 2022.02.23

드래곤커브

📍 문제 설명 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net 💡 접근 첫 좌표가 주어지니 좌표를 하나하나 기억하지 않고 상하좌우 방향의 값을 기억해둬서 풀 수 있다. 0세대 : 0 1세대 : 0 - 1 2세대 : 0 - 1 - 2 - 1 3세대 : 0 - 1 - 2 - 1 - 2 - 3 - 2 - 1 규칙을 보면 2배씩 증가하며 -1세대의 끝점과 현제 새대의 시작점이 반시계 방향으로 대칭이 된다. 각 드래곤 커브 마..

Algorithm/baekjoon 2022.02.21

주사위 굴리기

📍 문제 설명 💡 접근 십자 모양의 주사위지만 주사위의 숫자를 담는 일차원 배열을 사용해서 방향에 따라 전개도에 맞는 숫자가 들어가도록 하였음 1. 위와 같이 동서북남에 따라 방향에 맞게 주사위의 값을 변경시켜준다. 2. 이동한 칸의 수에 따라 조건에 맞는 처리를 해준다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, m, v, e, k, r, x, y, answer, cnt; static int[] arr, dice; static long[] dp; static int[][] ..

Algorithm/baekjoon 2022.02.21