====== [G] Grounded Number ====== ===== 풀이 ===== * 매 턴 지날때마다 k는 항상 1씩 증가한다. 반면 N은 증가하거나 감소하거나 한다. N-k는 일정하거나 2만큼 줄어들거나 하고, 언젠가는 N이 k보다 작거나 같아지게 된다. * 만약 어느 시점에 N=k 가 된다면, 그때부터는 계속 N과 k가 같이 1씩 증가하게 된다. 그때는 무한한 턴이 지나더라도 N이 0이 될수 없다. * 만약 어느 시점에 N=k-1이 된다면, 그때부터는 N은 계속 1씩 감소하게 된다. 턴이 지나면 결국 N은 0이 된다. * N-k의 값은 2만큼씩만 줄어들기 때문에, N이 처음에 홀수였다면 어느시점에 N=k가 될것이고, N이 처음에 짝수였다면 어느시점에 N=k-1이 될것이다. * 결국 N의 홀짝성만 체크하면 답을 구할수 있다. 시간복잡도는 O(1) ===== 코드 ===== """Solution code for "BOJ 34019. [G] Grounded Number". - Problem link: https://www.acmicpc.net/problem/34019 - Solution link: http://www.teferi.net/ps/problems/boj/34019 Tags: [ad hoc] """ def main(): N = int(input()) print('Yes' if N % 2 == 0 else 'No') if __name__ == '__main__': main() {{tag>BOJ ps:problems:boj:골드_5}}