ps:problems:boj:27296
                목차
카탈란 마스터의 선분 그리기
| ps | |
|---|---|
| 링크 | acmicpc.net/… | 
| 출처 | BOJ | 
| 문제 번호 | 27296 | 
| 문제명 | 카탈란 마스터의 선분 그리기 | 
| 레벨 | 골드 5 | 
| 분류 | 
 게임 이론  | 
	
| 시간복잡도 | O(T) | 
| 인풋사이즈 | T<=10^5 | 
| 사용한 언어 | Python 3.11 | 
| 제출기록 | 31388KB / 132ms | 
| 최고기록 | 124ms | 
| 해결날짜 | 2023/06/21 | 
풀이
- 삼각 분할의 갯수가 카탈란수라는 것은 사실 이 문제를 푸는데에는 전혀 관계 없다.
 - 볼록다각형을 삼각분할할때 대각선의 갯수가 n-3개. 그래서 이 문제에서 점이 n개일때 그려지게 될 선분의 갯수는 선분을 그리는 방법에 관계 없이 항상 2n-3개라는 것만 알면 충분하다.
 - n=0 또는 n=1일때는 그릴수 있는 선분이 0개이므로 출력해야 할 값은 '1 0'이 된다.
 - 나머지 경우는 선분의 갯수가 2n-3이므로 항상 홀수개이다. 홀수개일때 번갈아서 선분을 하나씩 그리면 마지막 선분을 선공이 그리게 된다. 그래서 출력해야 할 값은 '0 1'이 된다.
 - 결국 모든 케이스에 대해서 n이 2이상인지 여부만 체크하면 된다.
 
코드
"""Solution code for "BOJ 27296. 카탈란 마스터의 선분 그리기 게임".
- Problem link: https://www.acmicpc.net/problem/27296
- Solution link: http://www.teferi.net/ps/problems/boj/27296
Tags: [game theory]
"""
import sys
def main():
    T = int(sys.stdin.readline())
    for _ in range(T):
        N = int(sys.stdin.readline())
        print('1 0' if N <= 1 else '0 1')
if __name__ == '__main__':
    main()
ps/problems/boj/27296.txt · 마지막으로 수정됨: 2023/06/21 05:42 저자 teferi
                
                
토론