본문 바로가기

CODING119

[Programmers] Cos Pro 1급 C 모의고사 - 종이접기 문제 설명 4 x 4 크기인 정사각형 종이가 1 x 1 크기인 격자 칸으로 나누어져 있습니다. 이 종이를 가로축 혹은 세로축에 평행한 격자 선을 따라 한 번 접었을 때, 만나는 격자 칸에 적힌 숫자의 합이 최대가 되도록 하려 합니다. 종이를 접을 때는 만나는 격자 칸이 정확히 일치하도록 해야 합니다. 예를 들어 다음과 같이 4 x 4 크기인 종이가 있을 때, 종이는 점선 중 하나를 따라서 접을 수 있습니다. 이때, 붉은색 점선을 따라 종이를 접으면 36과 19가 적힌 칸이 정확히 만납니다. 두 숫자의 합은 55이며, 이때가 최댓값입니다. 4 x 4 크기인 정사각형 종이의 각 격자 칸에 적힌 숫자가 담긴 배열 grid, grid의 행 길이 grid_row_len, grid의 열 길이 grid_col_len.. 2023. 8. 20.
[Programmers] Cos Pro 1급 C 모의고사 - 꽃 피우기 문제 설명 정사각형 크기 격자 모양 정원에 칸마다 핀 꽃 또는 피지 않은 꽃을 심었습니다. 이 정원의 꽃이 모두 피는 데 며칠이 걸리는지 알고 싶습니다. 핀 꽃은 하루가 지나면 앞, 뒤, 양옆 네 방향에 있는 꽃을 피웁니다. 현재 정원의 상태를 담은 2차원 배열 garden, garden의 행 길이 garden_row_len, garden의 열 길이 garden_col_len이 주어졌을 때, 모든 꽃이 피는데 며칠이 걸리는지 return 하도록 solution 함수를 작성해주세요. 매개변수 설명 현재 정원의 상태를 담은 2차원 배열 garden, garden의 행 길이 g.. 2023. 8. 14.
[BAEKJOON] 효율적인 해킹 풀이 방법 1. a → b 단방향 그래프 생성, 방문 카운트용 int형 answer 일차원 배열 생성 2. 모든 컴퓨터를 시작 지점으로 설정하여 각각의 경로 찾아갈 때마다 visited 배열 초기화 3. 해킹 가능한 컴퓨터 순회 돌면서 방문하지 않았다면 bfs 탐색 4. bfs 내부에서 해킹 가능한 컴퓨터를 만났다면 현재 컴퓨터 번호(=index)에 +1 5. 한 번에 해킹 가능한 최댓값을 찾아서 최댓값과 카운트가 같은 컴퓨터 번호 출력 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; impor.. 2023. 8. 10.
[BAEKJOON] 플로이드 하나의 출발점에 대해 모든 정점의 최단 경로를 구한 다음, 문제에서 요구하는 도착점까지의 최단 경로를 출력한다. 다익스트라 알고리즘으로 풀이 1. 모든 정점의 비용을 최댓값으로 초기화한다. (시작점의 비용은 0) 2. 최단 경로여야 하므로 우선순위큐를 사용하여 비용이 오름차순 정렬되게끔 한다. (작은 비용의 경로먼저 탐색) 3. 탐색해야 할 노드의 비용이 현재까지 지나온 비용보다 클 경우는 탐색할 필요 없음 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.Prior.. 2023. 8. 2.
[BAEKJOON] 치즈 1. 외부 공기 (0, 0)부터 시작이라 가정하여 bfs 돌리기 2. 공기와 맞닿은 치즈는 맞닿은 횟수만큼 카운트 하기 3. 공기와 맞닿은 부분이 2회 이상이라면 녹은 치즈로 판단하기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int N, M, total; static boolean[][] cheese; static int[][] arr, dir= {{0,1},{0,-1},{1,0}.. 2023. 7. 21.
[CodeTree] 나무박멸(JAVA) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { static int n, m, k, c, result = 0; static Tree[][] arr; static PriorityQueue queue = new PriorityQueue(); static int[][] dir = { { 0, 1 }, { 0, -1 }, { 1, 0 }, { -1, 0 } }; static int[][] crossDir = { { 1, 1 }, { -1, -1.. 2023. 4. 5.