목록CodingTest/Java (342)
기록방
👉 문제링크 2596번: 비밀편지 병현이는 지은이에게 문자 A, B, C, D, E, F, G, H 로 쓰여진 편지를 날마다 보내는데, 컴퓨터로 보내는 비밀편지로, 한 문자마다 0 또는 1인 숫자 여섯 개를 사용하여 보낸다. 둘 사이의 약속은 다음과 www.acmicpc.net 🔸 문제 분석 🔸 0또는 1로 이루어진 숫자를 문자로 변환한다. 같거나 차이가 1일때는 변환 가능하다 차이가 2 이상이면 변환 불가능 하다. 모두 변환 가능하면, 변환한 문자열을 출력 변환이 불가능하면, 처음 불가능 한 문자의 순서를 출력한다. 🔸 코드 🔸 import java.io.FileNotFoundException; import java.util.Scanner; public class Main { private static..
👉 문제링크 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net 🔸 문제 분석 🔸 T개의 테스트 케이스마다 결과를 출력한다. 국가의 수 n과 비행기의 종류 m을 입력 받는다. m개의 비행기 종류 마다 a, b 쌍을 입력 받는다. 주어지는 비행 스케줄은 항상 연결 그래프를 이룬다. 모든 국가를 여행할 때 가장 적은 종류의 비행기로 탄다면 몇 개의 종류인지 출력한다. [연결 그래프] 그래프 이론에서 연결 그래프(connected graph)는 모든 두 꼭짓점 사이에 경로가 존재하..
👉 문제링크 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만 아니면 된다.) 묶음 수를 출력한다. 🔸 코드 ..
👉 문제링크 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번째 값 기준..
👉 문제링크 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..