본문 바로가기

Java/백준

(106)
[JAVA] 백준 11650 좌표 정렬하기 11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 풀이 과정 - 2차원 배열을 정렬하기 위해서 Comparator를 Override하여 정렬 기준을 제시하는 방법으로 진행 - 첫 번째 기준이 같다면 두번째 기준으로 오름차순 정렬 - 첫 번째 기준이 같지 않다면 첫 번째 기준으로 오름차순 정렬 import java.util.Scanner; import java.util.Arrays; import java.ut..
[JAVA] 백준 1427 소트인사이드 1427번: 소트인사이드 (acmicpc.net) 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 과정 - String을 입력받고 toCharArray()를 통해 char형 배열로 변환 - Arrays.sort를 통해 오름차순 정렬 - for 반복문을 통해 끝 인덱스부터 출력 String.toCharArray() - String의 toCharArray() 메소드는 문자열을 char[]로 변환하여 리턴 정답 import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] ..
[JAVA] 백준 10898 수 정렬하기 3 10989번: 수 정렬하기 3 (acmicpc.net) 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 과정 - 도수 정렬(counting sort) 이용 - 도수 정렬은 데이터를 비교, 교환하는 작업이 필요 없어 매우 빠름 - 다중 for문이 아닌 단순 for문만을 사용하고, 재귀 호출과 2중 for문이 없으므로 아주 효율적인 알고리즘 - 하지만 도수 분포표가 필요하기 때문에 데이터의 최솟값과 최댓값을 미리 알고 있는 경우에만 사용 가능 2023.08.01 - [C언어/자료구조] - 6-9장 도수 정렬 6-9장 도수 정렬 ..
[JAVA] 백준 2751 수 정렬하기 2 2751번: 수 정렬하기 2 (acmicpc.net) 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 과정 - 시간 복잡도 O(nlogn)인 힙 정렬을 이용해서 풀이 하였으나 시간 초과 뜸 import java.util.Scanner; public class Main { //교환 static void swap(int[] a, int index1, int index2){ int t = a[index1]; a[index1] = a[index2]; a[index2] = t; } //힙 만들기 sta..
[JAVA] 백준 25305 커트라인 25305번: 커트라인 (acmicpc.net) 25305번: 커트라인 시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다. www.acmicpc.net 풀이 과정 - 내림차순으로 정렬 후 k-1인덱스인 수 출력 배열의 내림차순 - 내림차순으로 정렬하려면 sort()의 인자에 추가로 Collections.reverseOrder()를 전달 - Collections 클래스 안에 있는 메서드는 static이기 때문에 인스턴스를 생성하지 않고 바로 사용 가능 - 기본형 int[]를 클래스형 Integer[]로 변형해야 함 정답 import java.util.Scanner; import java.util.Arrays; import java.uti..
[JAVA] 백준 2587 대표값2 2587번: 대표값2 (acmicpc.net) 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net 풀이 과정 - Arrays.sort 메서드를 통해 정렬을 통해 평균을 구하고 중앙값인 n[2] 구함 정답 import java.util.Scanner; import java.util.Arrays; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n..
[JAVA] 백준 2750 수 정렬하기 2750번: 수 정렬하기 (acmicpc.net) 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 풀이 과정 - 시간 복잡도가 O(n^2)인 버블 정렬 이용 2023.11.23 - [C언어/알고리즘] - [알고리즘] ch 8. 정렬(1) - 버블 정렬, 삽입 정렬 [알고리즘] ch 8. 정렬(1) - 버블 정렬, 삽입 정렬 8.1 정렬 알고리즘의 개요 정렬(Sorting) - 정해진 기준에 따라 데이터를 순서대로, 그리고 체계적으로 정리하는 알고리즘 - 정렬의 목적은 '탐색' 8.2 버블 정렬 - 자료 구조를 순회하..
[JAVA] 백준 1436 영화감독 숌 1436번: 영화감독 숌 (acmicpc.net) 1436번: 영화감독 숌 666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워 www.acmicpc.net 풀이 과정 - 7번째 수는 6660 , 8번째 수는 6661 - 첫 번째 숫자인 666부터 1씩 더해가며 666이 들어간 숫자가 있으면 카운트 +1 - 입력값 n과 count가 같아지면 출력 int형 -> String형으로 변환 방법 Java 숫자를 문자로 int to String 형변환 방법 (chragu.com) Java 숫자를 문자로 int to String 형변환 방법 자바(Java)에서 숫자를 문자로 ..