Algorithm

Algorithm/백준

BOJ 15686 치킨 배달(JAVA) 🍗

구조화 전체 치킨집에서 M개 조합 조합마다 각 집의 최소 치킨 거리의 합(도시의 치킨 거리) 구함 최종적으로 최소 도시의 치킨 거리 출력 소스 코드 import java.io.*; import java.util.*; /* * 치킨집의 조합 * 1: 집 * 2: 치킨집 * 각 집마다의 치킨거리 구하기 */ public class Main { static int N, M, result = Integer.MAX_VALUE; static int[][] map; static int[][] pick; static List house = new ArrayList(); static List chicken = new ArrayList(); public static void main(String[] args) throws..

Algorithm/백준

BOJ 2206 벽 부수고 이동하기(JAVA) 🧱

구조화 벽을 부수고 움직일 수 있는 한 번의 기회가 있음 [x][y][0] → 벽을 안 부수고 이동 [x][y][1] → 벽을 한 번 부숨 if [x][y][1]이 true고 map[nx][ny] == 1 → 안됨 소스 코드 import java.io.*; import java.util.*; public class Main_2206_벽부수고이동하기 { static int N, M, result; static char[][] map; static boolean[][][] visited; // 상 하 좌 우 static int[][] way = {{-1,0},{1,0},{0,-1},{0,1}}; public static void main(String[] args) throws IOException { Sys..

Algorithm/SWEA

SWEA 5656 벽돌 깨기(JAVA) 🔨

구조화 중복 순열로 몇번째 열에서 벽돌 깨기를 할 지 경우의 수 구하기 N번 (각 열마다 돌려서 가장 벽돌을 많이 깨는 열 구하기) 반복 벽돌을 깼으면 중력 작용 소스 코드 import java.io.*; import java.util.*; public class Solution_5656_벽돌깨기 { // T: 테스트케이스 횟수 // N: 벽돌 깨기 반복횟수, W: 열, H: 행 static int T, N, W, H, result; static int[][] map, copy; static int[] pick; // 상하좌우 static int[][] way = { { -1, 0 }, { 1, 0 }, { 0, -1 }, { 0, 1 } }; static boolean[][] visited; publi..

Algorithm/SWEA

SWEA 1949 등산로 조성(JAVA) ⛰

구조화 가장 높은 수부터 시작해서 작을 때만 이동 가능 특이케이스) 딱 한번 최대 -K를 해서 이동 가능 -> 1~K까지 빼서 모든 케이스 돌리기 0까지만 가능하고 음수는 안됨 소스 코드 import java.io.*; import java.util.*; public class Solution { static class Node{ /* * x, y 좌표 * num 해당 값 * flag 깎음 유무 */ int x, y, num; boolean flag; public Node(int x, int y, int num, boolean flag) { super(); this.x = x; this.y = y; this.num = num; this.flag = flag; } } static int T, N, K, t..

Algorithm/SWEA

SWEA 7793 오! 나의 여신님(JAVA) 👸

구조화 bfs start(수연이의 좌표) → end(여신님 좌표) 악마의 손아귀는 한 턴마다 *를 찾아 퍼지게 만들기 장애물은 ‘X’ 순서 ‘S’ 수연 좌표 이동 장애물 접근 X ‘*’ 악마의 손아귀 범위내에 들어가면 GAME OVER ‘D’ 여신님의 좌표에 도착하면 bfs 끝 악마의 손아귀 ‘*’ 찾아서 인접 행열에 퍼트리기 소스 코드 package day1006; import java.io.*; import java.util.*; public class Solution_7793_오나의여신님 { static int T, N, M; static char[][] map; static boolean[][] visited; static int suX, suY; static int godX, godY; stat..

Algorithm/SWEA

SWEA 4008 숫자 만들기(JAVA) 🧮

구조화 연산자 갯수 배열을 순열 사용하여 경우의 수 만들기 Boolean 배열 대신 배열의 값을 --하면서 중복 해결 연산자는 0: +, 1: -, 2: *, 3: / 로 정함 switch문 사용하여 각각의 연산자로 계산 소스 코드 import java.io.*; import java.util.*; public class Solution { static int T, N; static int min = Integer.MAX_VALUE; static int max = Integer.MIN_VALUE; // 0: +, 1: -, 2: *, 3: / static int[] operator; static int[] numbers; static int[] result; public static void main(S..

Algorithm/백준

BOJ 19238 스타트 택시(JAVA) 🚕

구조화 행, 열 거리가 가까운 고객 찾기 고객이면 2, 3, 4... 도착지는 n-2번째 배열로 [0][1][2] 짝을 이루게 설정 고객까지 가기 이동 시엔 연료 - 도착 후 이동 경로만큼 연료 + 도착 후는 if(map[nx][ny]>1) → 고객을 만남 고객부터 목적지까지 bfs 목적지 도달하면 연료+이동 경로 소스 코드 import java.io.*; import java.util.*; public class Main { static int N, M, E, cuCnt, taCnt, max = Integer.MAX_VALUE; // N: 행, 열 M: 고객수 E: 연료량 static int[][] map, distance; // static boolean[][] visited; static int s..

Algorithm/백준

BOJ 3109 빵집(JAVA) 🍞

구조화 파이프 라인을 만들어 보기 행의 값만 받아서 각 행의 첫번째 열에서 돌리기 근처 빵집에서 시작 ↗, →, ↘ 방향(way 배열)으로 나아가면서 방법 1. flag 변수(boolean)를 둬서 끝나는 시점 파악 하기 소스 코드 import java.io.*; import java.util.*; public class Main { static int R; // 행 static int C; // 열 static int cnt = 0; static boolean flag; static char[][] map; static int[][] way = {{-1,1},{0,1},{1,1}}; // 우상, 우, 우하 public static void main(String[] args) throws IOExcept..

delayU
'Algorithm' 카테고리의 글 목록 (7 Page)