목록Java (371)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cD27o2/btrWZVHnUTK/cDKE8xk99xuXEnWzPb8FHK/img.png)
👉 문제링크 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 🔸 문제 분석 🔸 n개의 정점 사이의 간선의 정보가 m개 입력된다. 연결된 노드의 묶음(연결 요소) 수를 출력한다. n개의 각 노드를 시작으로 BFS 혹은 DFS로 연결된 노드를 체크한다. 여기서는 BFS를 사용한다. BFS를 위해 큐와 visit 배열을 사용한다. visit 배열에 방문하지 않으면 0, 방문하면 묶음 번호를 저장한다. (0만 아니면 된다.) 묶음 수를 출력한다. 🔸 코드 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/o4h3T/btrWU6QaBiD/8GyofKJf4qb8RHV02kRyK1/img.png)
👉 문제링크 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 🔸 문제 분석 🔸 입력받은 n개의 수에서 전체 입력 중에 더 작은 값의 개수를 출력한다. 2차원 배열 arr[n][3]을 선언한다. 1번째는 입력 값, 2번째는 입력 순서, 3번째는 압축 값을 저장한다. 1번째 값 기준으로 오름차순 정렬한다. 3번째 값을 채운다 배열 앞에서 부터 더 작은 값은 0, 1, 2...로 커져간다. 같은 값이 연속되서 나오면 값을 키우지 않고 그대로 저장한다. 2번째 값 기준..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/l4QnK/btrWReaz9t2/4Jft7DArHNLKoexKlVCCD1/img.png)
👉 문제링크 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net 🔸 문제 분석 🔸 주어진 의사 코드로 병합 정렬을 구현한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { static int count, num; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextIn..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cRgUIc/btrWQ5jRYOq/cowvMU26QcA6hdXPnpBQN0/img.png)
👉 문제링크 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 🔸 문제 분석 🔸 입력받은 문자열이 팰린드롬인지 판별한다. 주어진 메서드를 사용하는데, 그 중 recursion 메서드가 몇 번 사용 됐는지도 같이 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { private static int count; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int t = sc.nextInt(); for (int i = 0; ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b2wlrI/btrWJIo3EDo/OEIbKz18FCbecMlMHd1hq0/img.png)
👉 문제링크 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 🔸 문제 분석 🔸 2차원 배열에서 최대값과 그 인덱스를 출력한다. 🔸 코드 🔸 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int x = 0, y = 0, max = -1; for (int i = 1; i