Written on
·
129
0
(n-1)+(n-2)+(n-3)...+1=n(n-1)/2 인 점을 활용해서
goal=n(n-1)/2로 선언해두고
goal에 두 수의 차의 절대값을 계속해서 빼서
딱 0이되면 YES가 출력되는 코드입니다.
채점기에는 전부 통과했는데
이 접근방법이 맞는 건지는 모르겠습니다.
한번 봐주시길 부탁드립니다~
##include<iostream>
using namespace std;
int main() {
int i, n, goal=0, pre,now;
cin >> n;
cin >> pre;
goal = n * (n - 1) / 2;
for (i = 1; i < n; i++) {
cin >> now;
goal -= abs(now-pre);
pre = now;
}
if (goal == 0) cout << "YES";
else cout << "NO";
}
Answer 1
1
좋은 아이디어입니다. 하지만 다음과 같은 예외들이 존재합니다.
6
5 6 9 12 15 20
같은 경우 NO가 나와야 하지만 재근님의 코드는 YES가 나오는 코드입니다.
채점기는 업데이트 하겠습니다. 열심히 공부하셔서 꼭 목표를 이루시기 바랍니다.