코드포스
[CodeTON Round 1] C. Make Equal With Mod
거북이같은곰
2022. 3. 27. 18:59
※ 가장 큰 수부터 나누면 큰 수 만 0으로 만들고 모든 수가 그대로 남음 [2, 5, 6, 8] -> [2, 5, 6, 0]
※ 1이 있다면 (가장 큰 수 - 1) 로 나누면 큰 수 만 1로 만들고 모든 수가 그대로 남음 [1, 5, 8] -> [1, 5, 1]
1. 1이 없다면 무조건 yes
2. 1이 있고 0도 있다면 무조건 no
3. 1이 있고 0이 없다면 위의 조건을 만족해야 한다. (정렬 한 뒤 arr[i]-1 == arr[i] 1 차이나면 no)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.StringTokenizer;
public class Main {
public static void main(String arg[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int T = Integer.parseInt(br.readLine());
while(T --> 0) {
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int[] arr = new int[n];
boolean zero = false;
boolean one = false;
for(int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(st.nextToken());
if(arr[i] == 0)
zero = true;
if(arr[i] == 1)
one = true;
}
if(!one)
sb.append("YES").append('\n');
else {
if(zero)
sb.append("NO").append('\n');
else {
boolean result = false;
Arrays.sort(arr);
for(int i = 1; i < n; i++) {
if(arr[i]-1 == arr[i-1]) {
result = true;
break;
}
}
if(!result) {
sb.append("YES").append('\n');
}
else {
sb.append("NO").append('\n');
}
}
}
}
System.out.println(sb);
}
}