목록정렬 (47)
기록방
👉 문제링크 7507번: 올림픽 게임 각 테스트 케이스마다 "Scenario #i:"를 출력한다. 여기서 i는 테스트 케이스 번호이며 1부터 시작한다. 그 다음 줄에는 상근이가 참석할 수 있는 경기의 최대 개수를 출력한다. 문제에서도 설명했지 www.acmicpc.net 🔸 문제 분석 🔸 문제 한 경기가 끝나야 다음 경기를 볼 수 있다. 종료와 시작 시간이 완전히 같아도 볼 수 있다. 테스트 케이스 별, 한 사람이 볼 수 있는 최대 경기 수를 출력한다. 풀이 (Greedy) 경기 정보를 날짜와 종료 시간으로 오름차순 정렬 한다. 다음 경기를 볼 수 있으면 카운트 + 1을 한다. 다음 경기가 다음 날짜이면, 무조건 볼 수 있으므로 다음 경기로 이동한다. 다음 경기의 시작이 현재 경기의 종료 시간보다 같거나..
👉 문제링크 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..
👉 문제링크 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 🔸 문제 분석 🔸 n개의 성적을 입력받아 내림차순 정렬 뒤 k번째 수를 출력한다. 🔸 코드 🔸 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i..
👉 문제링크 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 🔸 문제 분석 🔸 5개의 정수가 입력되면 평균과 중간값을 출력한다. 🔸 코드 🔸 import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[5]; int sum = 0; f..