728x90
반응형
2024.09.21기준 - 실버2
728x90
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 주어진 점의 좌표에서 3점을 골라 3점의 간격이 같은 개수를 출력하는 문제입니다.
접근 방법
- 입력받은 점의 위치를 오름차순으로 정렬해줍니다.
- 정렬을 완료한 점들 중 3개씩 비교하여 개수를 출력해줍니다.
1. 입력받은 점의 위치를 정렬해줍니다.
// 입력받은 점의 위치를 저장
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
// 오름차순으로 정렬
Arrays.sort(arr);
2. 세 점의 간격을 계산하는 반복문을 생성해줍니다.
// 세 점의 간격을 계산하는 반복문
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j < n - 1; j++) {
for (int k = j + 1; k < n; k++) {
// 세점의 간격이 같다면 count를 올려주고 멈춘다.
if (arr[j] - arr[i] == arr[k] - arr[j]) {
count++;
break;
// 한 쪽이 더 커지면 멈춘다.
} else if (arr[j] - arr[i] < arr[k] - arr[j]) {
break;
}
}
}
}
코드
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 t = Integer.parseInt(br.readLine()); // 테스트 케이스 개수
int[] arr;
int n, count;
StringTokenizer st;
while (t-- > 0) {
n = Integer.parseInt(br.readLine()); // 점의 개수
st = new StringTokenizer(br.readLine()); // 점의 위치
arr = new int[n];
count = 0;
// 입력받은 점의 위치를 저장
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
// 오름차순으로 정렬
Arrays.sort(arr);
// 세 점의 간격을 계산하는 반복문
for (int i = 0; i < n - 2; i++) {
for (int j = i + 1; j < n - 1; j++) {
for (int k = j + 1; k < n; k++) {
// 세점의 간격이 같다면 count를 올려주고 멈춘다.
if (arr[j] - arr[i] == arr[k] - arr[j]) {
count++;
break;
// 한 쪽이 더 커지면 멈춘다.
} else if (arr[j] - arr[i] < arr[k] - arr[j]) {
break;
}
}
}
}
// 출력 후 줄 바꿈
sb.append(count).append("\n");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BEAKJOON / 백준 - JAVA 25166번 배고픈 아리의 샌드위치 구매하기 (0) | 2024.09.23 |
---|---|
BEAKJOON / 백준 - JAVA 18795번 이동하기 3 (0) | 2024.09.22 |
BEAKJOON / 백준 - JAVA 10914번 Veni, vidi, vici (0) | 2024.09.20 |
BEAKJOON / 백준 - JAVA 25755번 거울반사 (0) | 2024.09.19 |
BEAKJOON / 백준 - JAVA 18127번 모형결정 (0) | 2024.09.18 |