알고리즘 문제/BOJ
18859번 부모님께 큰절 하고
parkit
2020. 4. 6. 17:13
728x90
반응형
https://www.acmicpc.net/problem/18859
onjo0127님의 반례 덕분에 맞았다.
6
1 2 3 4 7 10
정답 : Yes
예시 : 3 2 1 4 7 10
아이디어 :
multiset을 통해 vector sort를 활용한다.
입력을 통해 multiset과 vector에 데이터를 넣는다.(입력으로 주어지는 것들)
vector v를 오름차순 sort를 한 후, 공차(d)를 구한다. d = v[1] - v[0];
그리고, multiset을 통해 어떤 한 수열을 구한다.
구하는 방식은 Start = v[0] + d를 놓고, Start += d를 해주면서 multiset에 Start가 있으면 multiset에서 제거해준다.
즉, 공차가 d인 수열은 모두 제거된 것이다.(첫 원소(v[0])는 아직 multiset안에 있다.)
하지만 이때, 또 다른 multiset2에 multiset을 넣고, 마지막으로 제거된 원소를 multiset2에 넣는다.
이 문제의 유일한 반례이기 때문이다.(맨 위 반례)
그리고 multiset, multiset2에 있는 원소들도 등차수열을 이루는지 검사하면 된다.
728x90
반응형