algorithm

Algorithm/백준

BOJ 14889 스타트와 링크(JAVA) ⚽

문제 링크 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 설명 N개 중 절반을 조합으로 뽑아 두개의 그룹으로 나눠 그룹의 능력치 차이가 가장 적은 경우 구하기 입력 N: 총 인원수 Sij: i번 사람과 j번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치 Sji: j번 사람과 i번 사람이 같은 팀에 속했을 때, 팀에 더해지는 능력치 Sij와 Sji는 다를 수도 있음, Sii는 항상 0 출력 그룹의 능력치 차이가 가장 적은 경우에서의 능력치 차이값 구조화 N개 중에 N/2개를 조합으로 뽑아 두 그룹으로 나눔 각 그룹별로 능..

Algorithm/백준

BOJ 1600 말이 되고픈 원숭이(JAVA) 🙊

문제 링크 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 문제 설명 (0, 0)에서 (H-1, W-1)까지의 최소 거리 단, 이동을 상하좌우 + K번만큼의 말의 이동 입력 K: 원숭이가 말의 이동방법으로 이동할 수 있는 횟수 W: 너비 H: 높이 출력 원숭이의 동작수의 최솟값, 시작점에서 도착점까지 갈 수 없는 경우엔 -1 출력 구조화 (0, 0)부터 bfs 말의 이동 방식으로 이동한 횟수가 K보다 작다면 말의 이동 방식으로 이동 방문체크 시에 이동한 횟수만큼의 배열을 만들어 각 경우의 수를..

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 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 14502 연구소(JAVA) 🧪

문제 링크 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제 설명 벽 3개를 설치해 바이러스가 가장 적은 상태(안전 영역이 큰 상태)에서의 안전 영역의 크기를 구하는 문제 입력 N×M의 맵이 주어진다. 이때 0은 빈칸, 1은 벽, 2는 바이러스 출력 바이러스가 가장 적은 상태(안전 영역이 큰 상태)에서의 안전 영역의 크기를 출력 즉, map에서의 '0' 개수 구조화 0(빈칸)에 벽 세우고 안전 영역 크기 체킹, 벽은 3개만 세울 수 있음 => 0(빈칸)에서 3개의 조합 sudo 코드 1. 0(빈칸) 중에 3개를 골라 벽..

delayU
'algorithm' 태그의 글 목록 (3 Page)