백준 자바 정렬
[백준/JAVA] 18870번 좌표 압축
좌표 압축 https://www.acmicpc.net/problem/18870 1. 문제 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자. 2. 문제 접근 1) 첫째 줄에 좌표의 개수 N을 입력받는다. 2) N만큼 좌표를 입력받아서 배열에 저장한다. 3) 정렬되기 전의 배열이 후에 필요하기 때문에 배열을 하나 복사하여 만들어둔다. 4) 병합정렬을 이용하여 배열을 정렬한다. 5) 해쉬맵을 이용하여 정렬된 수와 해당하는 인..
[백준/JAVA] 10814번 나이순 정렬
나이순 정렬 https://www.acmicpc.net/problem/10814 1. 문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 2. 문제 접근 1) 첫 째 줄에 회원의 수 N을 입력받는다. 2) 나이순으로 정렬을 하기 때문에 나이 범위에 해당하는 String 배열을 생성한다. 3) N만큼 반복하여 회원의 나이와 이름을 입력받는다. 4) 이 때, 회원의 나이에 해당하는 인덱스를 검사한다. 해당 인덱스의 값이 null일 경우 String객체를 하나 생성하여 입력받은 값을 넣는다. null이 아닐 경우 배열의 String 뒤에 입력받은 값을 붙여 넣는..
[백준/JAVA] 11650번 좌표 정렬하기
좌표를 정렬하는 문제 https://www.acmicpc.net/problem/11650 1. 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 2. 문제 접근 1) 점의 개수 N을 입력받는다. 2) N만큼 좌표를 입력받는다. 3) 두가지 방법으로 정렬을 해볼 예정이다. 3-1) 병합정렬을 진행하되 병합과정에서 병합하려는 두 배열의 X좌표를 먼저 비교하고 만약 같을 시 Y좌표를 비교하는 방법을 사용한다. 3-2) X좌표와 Y좌표를 입력받을 때, X좌표와 Y좌표의 가중치를 다르게 하여 저장한다. -X좌표는 일반적인 정수로, Y좌표는 소수로 변환하여 두 개를 더하여 저장! 3. 코드 1) 병합정..
[백준/JAVA] 1427번 소트인사이드
숫자를 정렬하는 문제 https://www.acmicpc.net/problem/1427 1. 문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 2. 문제 접근 1) 정렬하려는 수 N을 문자열로 입력받는다. 2) 숫자를 저장할 수 있는 10의 크기의 정수형 배열을 만든다. 3) 문자열의 문자 수만큼 반복하며 charAt()을 통해 각 문자를 접근하며 해당하는 숫자을 인덱스로 하여 배열의 값을 1씩 증가시킨다. 4) 배열을 인덱스 9부터 시작하여 0까지 해당 값이 0이 될때까지 인덱스값을 출력한다. 3. 코드 import java.io.IOException; import java.io.InputStreamReader; import java.io.BufferedR..