728x90
1. 문제 설명
문제 : 7787 - 빨간 칩, 파란 칩 https://www.acmicpc.net/problem/7787
사용 언어 : 아희 (아희로 플레 풀었다!)
문제요약 :
A와 B가 돌아가면서 빨간 칩 혹은 파란 칩 k개를 책상에서 제거하여 마지막 칩을 가져가는 게임을 할 때, 승자가 누구인지 구하시오.
2. 문제 풀이
풀이 : 스프라그-그런디 정리를 이용한다. 먼저 그런디 수를 찾는다. 이때 그런디 수는 칩 개수를 2로 나누었을 때 나머지가 1이면 1이고, 4로 나누었을 때 나머지가 4면 2이고, 나머지 경우에는 그런디수가 3이다. 빨간 칩의 개수와 파란 칩의 개수의 그런디 수를 XOR 해서 0이 아니면 A가 이기고, 아니면 B가 이긴다. 즉 빨간 칩과 파란 칩의 그런디수가 같다면 B가 이기고, 아니면 A가 이긴다.
풀이 코드화 :
# 위 풀이를 python 코드로 옮긴 것
import sys ; input = sys.stdin.readline
def g(x):
if x%2 == 1: return 1
elif x%4 == 2: return 2
else: return 3
N, M = map(int,input().split())
'''
# xor 이용
ans = g(N)^g(M)
if ans != 0: print('A player wins')
else: print('B player wins')
'''
if g(N) != g(M): print('A player wins')
else: print('B player wins')
아희 코드 :
웅야궁석검받A맣밣밤뚜까
삭받받분맞뱍C도왜볃빠뭏
으쀼터터용솣여쳐역솣염뿌
에틀아야오숯오오터WA불
에앙추뻐터밝밞따솝반툐분
뿌뻐수삽뵫삽뵨한별볻섭붏
붇토방빠박라받반타타추뚜
붐본벋요아츄터번러범뻐뚜
밣뚜뫃더벓떠떠벌벌범멓더
두떠지교회겨맣붐따뚜박붏
맣발밤밦따따도발볼다뫃붉
뚜벗벌더벌벖멓멓더벅떠떠
따빠빠빠밞다맣발타맣맣불
★한별이짱귀여워★힁멓더
(중간중간 나오는 몇몇 단어들은 빈 공간을 채우기 위해 넣었다)
++ 알아두기
1. 아희의 초성은 어떤 행동을 하는지 지정해준다.
2. 아희는 중성의 방향대로 움직인다. 'ㅜ' 면 한 칸 아래, 'ㅑ' 면 두 칸 아래로 가는 식
3. 아희의 종성은 스택의 이름을 가르치거나 선의 수로 수를 가리킨다.

코드의 진행방향을 나타냈다. (https://yoo2001818.github.io/AheuiChem/ 사용)
앞으로 코딩과 알고리즘 관련 글을 업로드할 예정입니다!
아직 배우는 중이라서 부족한 점이 있으시거나, 혹은 궁금한 점이 있으면 댓글 남겨주시면 감사하겠습니다!!
728x90
'🤖 알고리즘 > 백준 문제풀이' 카테고리의 다른 글
[파이썬] 28218 격자 게임 (백준, KOI 1차) (0) | 2024.02.14 |
---|---|
[파이썬] 1219 오민식의 고민 (백준) (0) | 2023.12.31 |
[파이썬] 1738 골목길 (백준) (0) | 2023.12.31 |
[파이썬] 1865 웜홀 (백준) (0) | 2023.12.28 |
[파이썬] 17404 RGB거리 2 (백준) (5) | 2022.07.23 |