전체 글 573

드래곤커브

📍 문제 설명 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

배열 돌리기 1

📍 문제 설명 💡 접근 문제에서 주어진대로 구현했다. 타 블로그는 방향을 설정하여 범위를 벗어났을 때 방향을 전환해주는 식으로 작성했는데 이렇게 푸는 방식이 문제의 의도에 좀 더 부합한 답인듯하다. 👩‍💻 코드 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, answer, cnt; static int[] arr; static long[] dp; static int[][] board, result; static boolean[][] visited; static int[..

Algorithm/baekjoon 2022.02.21

배열 돌리기 3

📍 문제 설명 https://www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 💡 접근 문제에서 주어진대로 구현하는 문제... 시간이 좀 걸렸다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class M..

Algorithm/baekjoon 2022.02.20

알고스팟

📍 문제 설명 💡 접근 방문체크하는 배열을 사용하는데 n, m, 벽부순 횟수로 중복 방문 안되도록 하였다. 벽을 적게 부순 횟수부터 계산 하기 위해서 우선순위 큐 사용하였다. -> 어차피 벽인 지점은 방문 할 수 없으므로 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, answer, cnt; static int[] arr, dis = {-1, 1, 2}; static long[] dp; static int[][] board; st..

Algorithm/baekjoon 2022.02.20

이모티콘

📍 문제 설명 💡 접근 시간, 이모티콘의 갯수, 클립보드에 저장된 이모티콘 갯수를 저장해나간다. 방문처리를 할 때 현재 이모티콘 갯수와 클립보드의 갯수에 따라서 체크해줘야한다. 이미 처리된 부분이 나중에 계산된 부분한테 덮어씌워질 수 있다. 붙여넣기를 할 때 배열의 범위에 주의해야줘야 한다. 1.클립보드의 갯수가 n보다 크면 큐에 넣으면 안된다. ->계속 저장해서 클립보드에 저장하여 출력하는 경우 n인 부분에서 최솟값이 될거다. 2.1)과 마찬가지로 2000이 넘는 부분도 큐에 넣으면 안된다. 클립보드가 999일 때 이모티콘이 1000이면 그게 답이 될 수 있다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import ..

Algorithm/baekjoon 2022.02.20

숨바꼭질 4

📍 문제 설명 💡 접근 자신의 부모 인덱스를 방문시 마다 입력해두고 스택 이용해서 출력하면 되는 문제 👩‍💻 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, m, v, e, k, answer, cnt, second; static int[] arr, dis = {-1, 1, 2}; static long[] dp; static int[][] board; static int[] visited, parent; static int[] dx = {-1,1,0,0}; static int[] dy = {0,0,-1,1}; static ArrayList..

Algorithm/baekjoon 2022.02.20

숨바꼭질 3

📍 문제 설명 💡 접근 1초 후에 2*X의 위치로 가는게 아닌 0초 후에 2*X의 위치로 가는 조건으로 변경되었다. 방문했더라도 기록되어있는 방문 시각보다 현재 방문하려는 방문 시각이 더 작을 때는 값을 변경시켜주면 된다. 👩‍💻 코드 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { static int n, m, v, e, k, answer, cnt, second; static int[] arr, dis = {-1, 1, 2}; static long[] dp; static int[][] board; static int[] visited; static int[] dx ..

Algorithm/baekjoon 2022.02.20