728x90
반응형
2024.07.04기준 - 브론즈1
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 주어진 수열에서 정렬을 하여 가장 가까운 거리를 구한 뒤, 그 거리의 개수가 몇개인지 출력하는 문제입니다.
1. 우선 입력받은 수열을 정렬을 해 주었습니다.
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
2. 정렬된 수열에서 가장 가까운 거리를 구한 뒤 개수를 출력해줍니다.
for (int i = 0; i < n - 1; i++) {
dif = Math.min(dif, arr[i + 1] - arr[i]);
}
for (int i = 0; i < n - 1; i++) {
if (arr[i + 1] - arr[i] == dif) {
count++;
}
}
코드
package Main;
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int[] arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int dif = Integer.MAX_VALUE;
int count = 0;
Arrays.sort(arr);
for (int i = 0; i < n - 1; i++) {
dif = Math.min(dif, arr[i + 1] - arr[i]);
}
for (int i = 0; i < n - 1; i++) {
if (arr[i + 1] - arr[i] == dif) {
count++;
}
}
sb.append(dif).append(" ").append(count);
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 1652번 누울 자리를 찾아라 (0) | 2024.07.05 |
---|---|
BAEKJOON / 백준 - JAVA 1021번 회전하는 큐 (0) | 2024.07.04 |
BEAKJOON / 백준 - JAVA 2052번 지수연산 (2) | 2024.07.03 |
BAEKJOON / 백준 - JAVA 1015번 수열 정렬 (0) | 2024.07.03 |
BAEKJOON / 백준 - JAVA 1002번 터렛 (0) | 2024.07.02 |