Shiny Sky Blue Star

전체 글 177

JAVA 백준 2170 선 긋기 (스와핑)

https://www.acmicpc.net/problem/2170 문제첫째 줄에 정수 N (1 둘째 줄부터 N개의 줄에 선을 그을 떄 선택한 두 점의 위치 x, y (-1000000000 한 번 선을 그은 곳과 여러 번 선을 그은 곳을 구분할 수 없을 때, 그려진 모든 선의 총 길이를 출력하라. 최종 코드 (보기 쉬운 버전)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public static class Line { int start; int end; public Line(int..

JAVA 백준 1074 Z (재귀)

https://www.acmicpc.net/problem/1074 문제첫째 줄에 정수 N (1 , r, c (0 가 주어진다.크기가 [ 2^N ][ 2^N ]인 2차원 배열을 Z모양으로 탐색한다. 이 때 N이 2 이상일 경우 [ 2^N-1 ][ 2^N-1 ] 크기로 배열을 4등분하여 재귀적으로 Z모양 탐색을 진행한다.정수 세 개가 주어졌을때 r행 c열을 몇 번째로 방문하는지 출력한다. 최종 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public static int num = 0; public stat..

JAVA 백준 7662 이중 우선순위 큐 (우선순위 큐)

https://www.acmicpc.net/problem/7662 문제첫째 줄에 테스트 케이스의 횟수 정수 T가 주어진다.둘째 줄부터 T개의 테스트 데이터가 주어지며, 각 테스트의 첫 줄에는 적용할 연산 개수를 나타내는 정수 k (k 그 다음 줄부터 T개의 줄에 연산을 나타내는 문자 (I or D) 와 정수 n이 주어진다. (동일한 정수 삽입 가능)I n은 정수 n을 큐에 삽입하는 연산이다.D 1 은 큐에서 최댓값을 삭제하는 연산이다.D -1은 큐에서 최솟값을 삭제하는 연산이다.최댓값과 최솟값을 삭제하는 연산에서 최댓값이나 최솟값이 둘 이상일 때는 하나만 삭제된다.큐가 비어있을 때 삭제 연산이 들어온다면 해당 명령을 무시한다.각 테스트 케이스 마다 모든 연산을 처리한 후 큐에 남아 있는 값 중 최솟값과 ..

JAVA 백준 1753 최단경로 (그래프, 다익스트라)

https://www.acmicpc.net/problem/1753문제첫째 줄에 정점의 개수 V (1 (1 둘째 줄에는 시작 정점의 번호 K (1 셋째 줄부터 E개의 줄에 각 간선을 나타내는 세 개의 정수 u, v, w (u != v, 0 V개의 줄에 걸쳐 i번째 줄에 i번 정점으로 가는 최단 경로의 경로값을 출력한다. 이 때 시작점과 동일한 정점일 때는 0을 출력하고, 시작점에서 i번 정점에 도달할 수 없을 경우 INF를 출력한다. 원래 가중치를 사용하는 그래프는 dfs를 사용해서 만들기 때문에 이 문제도 그렇게 풀려고 해봤는데 실행 시간이 조금 길 것 같기도 하고 조금 문제가 있을 것 같아 찾아보니 bfs를 이용하여 만드는 사람들이 많은 것 같아 bfs로 만들어보기로 했다. 초기 코드import..

JAVA 백준 7576 토마토 (그래프)

https://www.acmicpc.net/problem/7576문제첫째 줄에 상자의 크기 M, N ( 2 이 주어진다.둘째 줄에 M, N 크기의 상자에 토마토의 정보가 주어지며, N개의 줄에 M개의 정보가 주어진다.토마토의 정보는 0 (익지 않은 토마토), 1 (익은 토마토), -1 (토마토가 없음) 로 나누어진다.익은 토마토와 근접한 토마토만 익을 수 있다. 만약 익은 토마토와 익지 않은 토마토가 빈칸으로 나누어져 있다면 익지 않은 토마토는 익을 수 없다.토마토가 모두 익을 때까지의 최소 날짜를 출력해야 될 때, 토마토가 처음부터 모두 익어있다면 0을 출력하고, 토마토가 모두 익지 못한다면 -1을 출력한다. 초기 코드import java.io.BufferedReader;import java.io...

JAVA 백준 24445 알고리즘 수업 - 너비 우선 탐색 2 (그래프)

문제첫째 줄에 정점 개수 N ( 5  ( 1  ( 1 둘째 줄부터 M개의 줄에 간선의 정보 u v ( 1   N, u != v) 가중치 1인 양방향 간선이 주어진다.첫째 줄부터 N개의 줄에 정수를 한 개씩 출력하는데 i번쨰 줄에 정점 i의 방문 순서를 출력한다. 시작 정점의 방문 순서를 1로 시작하며, 시작 정점에서 방문할 수 없는 경우 0을 출력한다.방문 순서는 내림차순으로 방문하도록 한다. 최종 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { public static int[] visited; public ..

JAVA 백준 24444 알고리즘 수업 - 너비 우선 탐색 1 (그래프)

https://www.acmicpc.net/problem/24444 문제첫째 줄에 정점 개수 N ( 5  ( 1  ( 1 둘째 줄부터 M개의 줄에 간선의 정보 u v ( 1   N, u != v) 가중치 1인 양방향 간선이 주어진다.첫째 줄부터 N개의 줄에 정수를 한 개씩 출력하는데 i번쨰 줄에 정점 i의 방문 순서를 출력한다. 시작 정점의 방문 순서를 1로 시작하며, 시작 정점에서 방문할 수 없는 경우 0을 출력한다.방문 순서는 오름차순으로 방문하도록 한다. 최종 코드 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Main { ..

JAVA 백준 24480 알고리즘 수업 - 깊이 우선 탐색 2 (그래프)

https://www.acmicpc.net/problem/24480 문제첫째 줄에 정점 개수 N ( 5  ( 1  ( 1 둘째 줄부터 M개의 줄에 간선의 정보 u v ( 1   N, u != v) 가중치 1인 양방향 간선이 주어진다.첫째 줄부터 N개의 줄에 정수를 한 개씩 출력하는데 i번쨰 줄에 정점 i의 방문 순서를 출력한다. 시작 정점의 방문 순서를 1로 시작하며, 시작 정점에서 방문할 수 없는 경우 0을 출력한다.방문 순서는 내림차순으로 방문하도록 한다. 최종 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util..

JAVA 백준 24479 알고리즘 수업 - 깊이 우선 탐색 1 (그래프)

https://www.acmicpc.net/problem/24479문제첫째 줄에 정점 개수 N ( 5 ( 1 ( 1 둘째 줄부터 M개의 줄에 간선의 정보 u v ( 1   N, u != v) 가중치 1인 양방향 간선이 주어진다.첫째 줄부터 N개의 줄에 정수를 한 개씩 출력하는데 i번쨰 줄에 정점 i의 방문 순서를 출력한다. 시작 정점의 방문 순서를 1로 시작하며, 시작 정점에서 방문할 수 없는 경우 0을 출력한다.방문 순서는 오름차순으로 방문하도록 한다. 최종 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.ArrayList;import java.util.Co..

JAVA 백준 2263 트리의 순회 (트리)

https://www.acmicpc.net/problem/2263 문제첫째 줄에 정점 개수 V ( 2 둘째 줄에는 인오더, 셋째 줄에는 포스트오더가 주어지는데 각 줄에는 n개의 숫자를 공백으로 구분하여 입력된다.인오더와 포스트오더를 이용하여 프리오더를 만들어 출력한다. 최종 코드 import java.io.*;import java.util.StringTokenizer;public class Main { public static int[] inorder; public static int[] postorder; public static int[] preorder; public static int index = 0; public static void tree(int il, int i..