문제
철수와 영희는 구슬 게임이 구슬 게임을 하려 한다. 이 구슬 게임의 규칙은 다음과 같다.
- 철수와 영희는 번갈아가며 구슬을 가져간다. 맨 처음에는 철수가 구슬을 가져간다.
- 구슬을 가져갈 때에는, 최소 1개에서 최대 3개까지 구슬을 가져갈 수 있다.
- 가져갈 구슬이 없는 사람이 진다.
예를 들어 5개의 구슬이 있다고 하자. 여기서 철수가 1개의 구슬을 가져가고, 영희가 3개의 구슬을 가져간 후, 철수가 마지막으로 1개의 구슬을 가져갔다고 가정하면 이 게임의 승자는 철수가 된다. 물론, 각자가 어떻게 구슬을 가져가느냐에 따라 승패가 달라질 수 있다. 철수와 영희는 이기기 위해서 최선을 다해서 게임을 플레이 한다. n개의 구슬을 시작으로 게임을 진행한다고 할 때, 철수가 이 게임을 이길 수 있다면 YES, 그렇지 않다면 NO를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 전체 구슬의 개수n 이 주어진다. (0 ≤ n ≤ 1,000,000)
출력
첫째 줄에 철수가 이길 수 있으면 YES, 그렇지 않으면 NO를 출력한다.
예제 입력
3
예제 출력
YES
예제 입력
5
예제 출력
YES
예제 입력
191124
예제 출력
NO
# 접근법
# 우선 문제의 포인트를 찾아보자면
# "철수와 영희는 이기기 위해서 최선을 다해서 게임을 플레이 한다." 이부분이다.
# 이 말은 구술이 4개 있을 경우에
# 철수가 시작 시 1개를 가져갔다면 영희는 이기기위해 3개를 가져간다는 것이다 즉 철수가 1일 때 영희는 1을 선택할 경우의 수는 없다는 것이다.
# 또 철수가 2개를 가져가면 영희는 2개, 철수가 3개를 가져가면 영희는 1개 구술 4개의 상황에서는 철수가 이기는 상황은 없다.
# 구술 1~3일 경우는 철수가 무조건 전체를 시작하자마자 다 가져갈 것이기에 철수가 무조건 이긴다.
# 이런식으로 계산을 해보면 4의 배수에서 철수는 무조건 진다는 규칙을 찾을 수 있다.
#코드
1
2
3
4
5
6
7
8
9
10
|
import sys
if __name__ == "__main__":
input = sys.stdin.readline
n = int(input())
if n%4 == 0:
print("NO")
else:
print("YES")
|
cs |
'CS > 알고리즘_문제풀이(파이썬)' 카테고리의 다른 글
버튼 누르기 (0) | 2021.07.14 |
---|---|
카드 놀이 (0) | 2021.07.14 |
직사각형의 합 (0) | 2021.07.13 |
그룹 단어 체커 (0) | 2021.07.12 |
1, 2, 3 더하기 (0) | 2021.07.12 |