99Club
Posts

© 2025. woongsnote All rights reserved.

Beginner
2024-04-27

이제는 더 이상 물러날 곳이 없다

전장의 크기가 주어졌을 때, 누가 승리하는지 판단해서 반환하는 함수 구현하기

#99일지#99클럽#TIL#개발자스터디#코딩테스트#항해
직접 풀러가기

문제 설명

건덕이와 건구스는 𝑁$N$개의 칸이 가로로 놓인 전장에서 승부를 겨루고 있다. 처음에는 가장 왼쪽 칸에 건덕이가, 가장 오른쪽 칸에 건구스가 자리 잡고 있으며, 승자는 아래 규칙에 따라 정해진다.

  1. 자신의 차례에 아래 두 가지 행동 중 하나를 반드시 수행해야 한다. 전장을 벗어나도록 이동할 수 없으며, 행동을 마친 뒤에는 상대방의 차례가 된다.
  2. 상대방을 공격하는 경우 승리한다.

제한 사항

  • 3≤ N ≤ 200000
  • 건덕이가 이길 경우 Duck을, 건구스가 이길 경우 Goose를 출력한다.
Nresult
3Goose
4Duck
7Goose

풀이

양쪽 끝에서 가운데로 이동하면서, 먼저 공격할 때, 승리하는 조건을 만족하는 경우는 N이 홀수면 건구스, 짝수면 건덕이가 이기게 된다.

그러므로, N % 2 == 0 인지만 확인하여 결과를 반환하면 된다.

Python

N = int(input())
if N % 2 == 0:
	print("Duck")
else:
	print("Goose")

조건문을 한 줄로 줄이면 아래와 같다.

N = int(input())
print("Duck" if N % 2 == 0 else "Goose")