목록Algorithm/문제 풀이 (54)
개발자-H 입니다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dlo8lo/btrdyklWqgC/Le2naquxqooCimxKkBKkOK/img.png)
https://www.acmicpc.net/problem/11403 11403번: 경로 찾기 가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 경로가 있는지 없는지 구하는 프로그램을 작성하시오. www.acmicpc.net 너비우선탐색으로 풀려다가 힌트에 플로이드워셜이 있길래 해당 알고리즘으로 공략했다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); pu..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Tjwnj/btrdBrkFPU9/wFIdXHHtqmkw5Fl9OAlbJ0/img.png)
https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 주어진 두 듣도 못한 배열과 보도 못한 배열을 비교하여 같은 집합을 출력하면 되는 문제이다 듣도 못한 배열과 보도 못한 배열 이름 짓기가 궁금했던 문제인데 다른 사람풀이를 보니 notHeard, notSeen등 다양했다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; import java.u..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/blvYdl/btrdylwP8nG/7jkeyV3iwBbnCPUWQUmb21/img.png)
https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 그래프 - 너비우선 탐색 문제이다. int 형으로 하다가 뒤에 1더하는 조건때문에 고생했는데.. long 으로 바꾸고 10* +1로 계산했다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static final BufferedReader br = ne..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b4nvA7/btrdpMpwyoW/TesIfYX4j8ZeS4mcR7RIdk/img.png)
https://www.acmicpc.net/submit/11725/32749545 로그인 www.acmicpc.net 그래트 탐색 문제이다. DFS,BFS 어떤 것을 사용해도 무방하다. 노드에 이전 노드(부모)를 저장했고 root 배열을 만들어서 표기했다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { public static final BufferedReader br = new BufferedRe..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/boi6ue/btrdqKqBskR/RZg2aOeBhXJMU1nt7CUG80/img.png)
https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 층과 인원수를 2차원 배열로 구성하여 미리 개수만큼 map에 저장한다. 테스트 케이스 입력에 대해 출력한다. import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static final BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); public..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bt9M1n/btrdrmbXULv/5LIiq19WQFVRSHVL5PVVZk/img.png)
https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 주어진 정렬 조건을 이용하여 우선 순위 큐에 넣고 쭈욱 출력했다. 1788ms 풀이법은 Node에 ToString을 구현하여 넣은 방법이다 916ms 풀이법은 큐를 출력하는 While문 안에서 String을 만들어 Builder에 넣고 출력했다. 880ms 풀이법에서는 ToStirng 구현에서 사용했었던 String.format을 변경하였다. ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/qioJw/btrcj2enM1f/DRxsuSaFDOPKm3oq339l21/img.png)
https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 그래프탐색 문제이다. DFS 탐색 횟수와 깊이가 문제의 정답이다. class Solution { public static int numOfArea = 0; public int[] solution(int m, int n, int[][] picture) { int[] answer = new int[2]; boolean[][] visit = new boolean[m][n..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/FGumX/btrb83Tjsbc/KgnfSeOUjq3wRaAfZOQfQ1/img.png)
https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 그리디 문제이다. 큰 동전부터 작은 동전 순으로 목표 K원을 나눠주면 된다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Main { public static final BufferedReader br =..