Hard deck/리포트 26

073 : 구간 곱 구하기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 수 수의 변경이 빈번히 일어나는 와중에 특정 구간의 곱을 구함 세그먼트 트리 + MOD I // 수의 갯수 N, 변경횟수 M, 곱 구하는 횟수 K (2) 첫번째 수 ... (N+1) N번쨰 수 (N+2) a b c ... (N + M + K + 1) a b c O // K개의 줄에 결과를 1000000007로 나눈 나머지를 출력 *a가 1일 때 b번째 수를 c로 바꿈 *a가 2일 때 b~c 곱 출력 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer..

Hard deck/리포트 2022.08.30

072 : 최솟값 찾기 2

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 정수 배열 A번째 ~ B번째 중 가장 작은 정수 찾기 a~b 쌍이 M개 주어진다 I // N M (2) 1번째 값 ... (N+1) N번째 값 (N+2) 1번째 ab 쌍 ... (N+M+1) M번째 ab쌍 O // ab 사이 최솟값을 차례대로 출력 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { // box recognition static long[] tree; public static void main(S..

Hard deck/리포트 2022.08.30

069 : 문자열 찾기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 문자열로 이루어진 집합 S 입력으로 주어지는 M개의 문자열 중, S에 포함된 것이 총 몇개인지 구하는 프로그램을 작성하시오 Trie I // 문자열 갯수 N, M (1) S에 포함된 문자열 ... (N) S에 포함된 문자열 (1) 검사해야 하는 문자열 ... (M) 검사해야 하는 문자열 O // M개의 문자열 중 총 몇개가 집합 S에 있는지 출력 *알파벳 소문자로만 이루어져 있으며, 길이는 500을 넘지 않음 *같은 문자열이 여러 번 주어지는 경우는 없다 import java.util.Scanner; public class Main { public static void main(String[] args) { // Inp..

Hard deck/리포트 2022.08.08

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