https://coding-factory.tistory.com/557
[Java] 자바 TreeMap 사용법 & 예제 총정리
TreeMap이란? TreeMap은 이진트리를 기반으로 한 Map 컬렉션입니다. 같은 Tree구조로 이루어진 TreeSet과의 차이점은 TreeSet은 그냥 값만 저장한다면 TreeMap은 키와 값이 저장된 Map, Etnry를 저장한다는 점입
coding-factory.tistory.com
※ [a1, a2, a3, a4] 일 때 앞에서 부터 차례대로 뺀 것이 답일 경우
[a2-a1, a3-a1, a4-a1] -> [a3-(a2-a1)-a1, a4-(a2-a1)-a1] -> [a3-a2, a4-a2] -> [a4-(a3-a2)-a2] -> [a4-a3]
※ 모든 시행은 an - a(n-1)로 끝난다.
1. 입력받은 수를 treeset에 넣는다. (탐색 시간을 줄이기 위해)
2. treeset에 있는 수 + k가 treeset에 포함되어 있는지 확인한다. (an - a(n-1) = k 가 되는지 확인 == an = k + a(n-1))
-- c++ unordered_map 해시저격을 조심하자--
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
import java.util.TreeSet;
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) {
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
TreeSet<Integer> ordered = new TreeSet<>();
boolean result = false;
st = new StringTokenizer(br.readLine(), " ");
for(int i = 0; i < n; i++) {
int a = Integer.parseInt(st.nextToken());
ordered.add(a);
}
for(int i : ordered) {
if(ordered.contains(i+k)) {
result = true;
}
}
if(result)
sb.append("YES").append('\n');
else
sb.append("NO").append('\n');
}
System.out.println(sb);
}
}
'코드포스' 카테고리의 다른 글
[April Fools Day Contest 2022] A. Who Tested? (0) | 2022.04.06 |
---|---|
[Codeforces Round #780 (Div. 3)] C. Get an Even String (0) | 2022.04.04 |
[Codeforces Round #779 (Div. 2)] C. Shinju and the Lost Permutation (0) | 2022.03.30 |
[Codeforces Round #779 (Div. 2)] B. Marin and Anti-coprime Permutation (0) | 2022.03.29 |
[CodeTON Round 1] C. Make Equal With Mod (0) | 2022.03.27 |