본문 바로가기

분류 전체보기

(297)
스타트와 링크 - Java, 백트래킹 www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net package Samsung; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.StringTokenizer; public class Startandlink { static int n; stat..
줄세우기 - 위상정렬, Java 위상 정렬이란 '순서가 정해져있는 작업' 을 차례로 수행해야 할 때 그 순서를 결정해주기 위해 사용하는 알고리즘입니다. 1. 집입차수가 0인 정점을 큐에 삽입합니다. 2. 큐에서 원소를 꺼내 연결된 모든 간선을 제거합니다. 3. 간선 제거 이후에 진입차수가 0이 된 정점을 큐에 삽입합니다. 4. 큐가 빌 때까지 2번 ~ 3번 과정을 반복합니다. 모든 원소를 방문하기 준에 큐가 빈다면 사이클이 존재하는 것이고, 모든 원소를 방문했다면 큐에서 꺼낸 순서가 위상 정렬의 결과입니다. m.blog.naver.com/ndb796/221236874984 25. 위상 정렬(Topology Sort) 위상 정렬(Topology Sort)은 '순서가 정해져있는 작업'을 차례로 수행해야 할 때 그 순서를 결정해주기 ... ..
병든 나이트 www.acmicpc.net/problem/1783 1783번: 병든 나이트 첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net #include #include using namespace std; int n, m; int dx[] = {-2,-1,1,2}; int dy[] = {1,2,2,1}; int main() { cin >> n; //세로 cin >> m; //가로 int cnt = 0; if (n >= 3) { if (m >= 7) { cnt = m - 1 - 6 + 5; } else if(m>=4){ cnt = 4; } else if (m 0) { cnt = m; } } else if (n ..
달팽이 www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net #include #include using namespace std; int dx[] = { -1,0,1,0 }; int dy[] = { 0,1,0,-1 }; int main() { int i, j; int n,target; cin >> n; cin >> target; vectorarr(n, vector(n)); i = n / 2; j = n / 2; int num = 1; int total = n*n; int ..
주사위 굴리기 www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int dice[4][3]; int mp[21][21]; int n, m; int k; int dx[] = {1,-1..
시험감독 www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { int n; long long b, c; vectora; cin >> n; // n: 1000000 ,..
거스름돈 - JAVA www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net package Greedy; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; class Change { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); ..
로프 - Java www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net package Greedy; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Rope { public static void main(String[] args) throws IOException { int n; Buffe..