전체 글 372

066 : 불우 이웃 돕기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 컴퓨터가 서로 연결되어 있는 랜선의 길이가 주어질 때, 기부가능한 최대의 랜선 길이 I // 컴퓨터 갯수 N N x N 행렬에 w가 주어진 O // 기부가능 랜선 길이 최댓값 *i번째 줄의 j값이 0일 경우 > 연결랜선 x *a > z : 1~26 // A > Z : 27 ~ 52 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { // point reco..

Hard deck/리포트 2022.08.08

065 : 다리 만들기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) 다리는 2 이상, 직선, 섬의 개수는 2~6 모든 섬을 연결하는 다리의 최소 길이를 구하라 BFS + 최소 신장 트리 I // 지도 세로크기 N - 가로 크기 M (1)섬과 바다 정보 1,0 > M개 ... (N)섬과 바다 정보 O // 모든 다리 합의 최소 길이 출력 연결 불가시 -1 출력 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { // point recognition static int[] dr = {-1, 0, 1, 0}; sta..

Hard deck/리포트 2022.08.08

063 : 케빈 베이컨의 6단계 법칙

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) 임의의 두 사람이 최소 몇 단계만에 이어질 수 있는지 계산하는 게임 케빈 베이컨 수 : 모든 사람과 케빈 베이컨 게임을 했을 때 나오는 단계의 합 특정 노드에서 나머지 모든 노드까지 최소 거리의 합(가중치는 모두 1) I // 유저 수 N - 친구 관계 수 M (1) 친구 관계 A - B ... (M) 친구 관계 A' - B' O // 케빈 베이컨 수가 가장 작은 사람 번호 출력 (여려명일 때는 번호가 가장 작은 사람 출력) import java.io.*; import java.util.StringTokenizer; public class Main { // Input Supply Cable private static Buffe..

Hard deck/리포트 2022.08.08

062 : 경로 찾기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) 가중치 없는 방향 그래프 G 모든 노드쌍(i, j) 경로 여부 탐색 플로이드-워셜 I // 노드 갯수 N (1) 인접 행렬 1 or 0 ... (3) 인접 행렬 O // 인접 행렬로 출력(0 or 1) *i번째 줄 i 수는 항상 0 import java.io.*; import java.util.StringTokenizer; public class Main { // Input Supply Cable private static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); private static BufferedWriter bw = new Bu..

Hard deck/리포트 2022.08.08

060 : 세일즈맨의 고민

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 도시 (0~'N-1') 교통수단과 비용 도시 방문시마다 수익 도착 도시에 왔을 때, 돈의 총량 최대 "벨만-포드" + Money배열 I // 도시 수 N, S도시, E도시, 교통수단수 M (1) 교통 수단 : 시작 끝 가격 ... (M) : 시작 끝 가격 (1)도시의 수익 ~ (N)도시 수익 O // 최댓값 출력 도착할 수 없음 : gg 무한히 많이 지닐 때 : Gee import java.io.*; import java.util.Arrays; import java.util.StringTokenizer; public class Main { // Argument recognition private static Buffer..

Hard deck/리포트 2022.08.08

057 : 최소 비용 구하기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 도시 도시 사이의 M개의 버스 특정 구간의 최소 비용 출력 I // 도시 수 N 버스 수 M S도시(1), E도시(1), 버스 비용(1) ... S도시(M), E도시(M), 버스비용(M) 구간 S도시, 구간 E도시 O // 최소 비용 출력 import org.w3c.dom.Node; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.ArrayList; import java.util.Arrays; import ..

Hard deck/리포트 2022.08.08

048 : Bipartite graph 판별하기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) 순환 > 이분그래프 X 테스트 케이스 갯수 K 노드 수 V, 에지 수 E (1)노드 - 노드(단방향 연결 정보) ... (E)노드 - 노드 O// YES or No import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; public class Main { // Preprocessing static ArrayList[] A; static int[] check; static boolean visited[]; static boolean isEven; public static void main(String[] args) th..

Hard deck/리포트 2022.08.08

047 : 효율적으로 해킹하기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 컴퓨터 A > B 신뢰 == B를 해킹하면 A도 해킹가능 한 번에 가장 많은 컴퓨터를 해킹 할 수 있는 번호를 출력하라 신뢰도 배열을 만든 후 BFS I // N(컴퓨터 갯수) M(신뢰 관계 수) A(1) B(1)(A > B 신뢰) ... A(M) B(M) O // 한번에 가장 많은 컴퓨터 해킹할 수 있는 번호를 오름차순 출력 import java.io.*; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { // Preprocess..

Hard deck/리포트 2022.08.08

046 : 특정 거리의 도시 찾기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) 도시 X에서 최단거리가 K인 모든 도시 번호를 출력하시오 I // 도시수 N, 도로 수 M, 거리 K, 출발도시 X 1 : A B(A > B 도로) .. M : X Y(X > Y 도로) O // 오름차순의 도시 번호 (없으면 -1) import java.util.*; public class Main { // Preprocessing static int visited[]; static ArrayList[] A; static int N, M, K, X; static List answer; public static void main(String[] args) { // Input Supply Cable Scanner sc = new ..

Hard deck/리포트 2022.08.08