Hard deck 143

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

CHAPTER 11 : Dynamic Programming

11 : Dynamic Programming 01 - Dynamic Programming 084 : 정수를 1로 만들기 085 : 퇴사 준비하기 086 : 이친수 구하기 087 : 2*N 타일 채우기 088 : 계단 수 구하기 089 : 연속 합 구하기 090 : 최장 공통 부분 수열 찾기 091 : 가장 큰 정사각형 찾기 092 : 빌딩 순서 구하기 093 : DDR을 해보자 094 : 행렬 곱 연산 횟수의 최솟값 구하기 095 : 외판원의 순회 경로 096 : 가장 길게 증가하는 부분 수열 찾기

Hard deck/List 2022.08.08