기아데 연방 공화국은 '레기온'이라는 인공지능 무인 병기들과 전쟁 중이다. 공화국은 레기온에 대항할 수단으로 '레긴레이브'라는 보행 병기를 개발했다. 공화국 군인들 중 소수정예는 이 레긴레이브에 탑승해서 레기온에 맞서 싸운다.
신에이 노우젠은 제 86 전략기동전단 기갑전대의 전대장이자 근접전의 대가이다. 그는 레기온들의 위치를 전부 파악할 수 있는 이능력이 있다. 그의 전투 스타일은 직접 레기온이 있는 위치 근처로 가서 빠르게 해치우는 것이다. 레긴레이브는 화력이 다소 떨어지지만, 기동성이 뛰어나다는 장점이 있기 때문이다.
레긴레이브는 대각선 네 방향으로 이동할 수 있다. 현재 좌표가 라면 (r−1, c−1), (r−1, c+1), (r+1, c−1), (r+1, c+1)로 움직일 수 있다. 그리고 대각선으로 이동할 때 이동 경로에 인접한 레기온을 최대 2기까지 해치울 수 있다. 각각의 이동 경우마다 해치울 수 있는 레기온 위치는 다음과 같다.
이동하려는 위치에 레기온이 있어도 겹쳐서 있을 수 있다. 다만, 겹친 위치에 있는 레기온은 해치울 수 없다.
기습받은 레기온들은 당황하여 모두 움직임을 멈춘 상태다. 레기온들의 위치가 주어졌을 때, 신에이 노우젠이 레기온을 모두 해치우는 게 가능한지 판단해보자.
신에이 노우젠은 전장을 벗어나 이동할 수는 없다.
입력
첫 번째 줄에 전장의 크기 이 주어진다. 전장은 N × N 크기 좌표로 이루어져 있다. 다음 개의 줄에는 전장의 정보가 주어진다. 각 줄마다 개의 좌표 정보가 주어지며 0은 빈칸, 1은 레기온, 2는 신에이 노우젠의 현재 위치를 나타낸다.
- 1 ≤ N ≤ 100
- 0 ≤ 레기온 개수 ≤ N^2 − 1
- 신에이 노우젠의 위치는 유일하다.
출력
전장에 레기온이 없거나 모든 레기온을 해치울 수 있다면 첫 줄에 "Lena"를 출력하고, 아니라면 "Kiriya"를 출력한다.
풀이 과정
체스에서 비숍이 다른 대각선상에 있는 비숍을 잡을 수 없는 것처럼, 신에이 노우젠은 같은 대각선상에 있는 레기온을 잡을 수 없다. 레기온이 같은 대각선상에 하나라도 있다면 Kiriya를 출력한다.
import sys
input = sys.stdin.readline
n = int(input().rstrip())
arr = [list(map(int, input().rstrip().split())) for _ in range(n)]
odd = 0
even = 0
now = 0
for i in range(n):
for j in range(n):
if arr[i][j] == 1:
if (i+j) % 2 == 1: odd += 1
else: even += 1
elif arr[i][j] == 2:
now = (i+j) % 2
if (even == 0 and now == 0) or (odd == 0 and now == 1): print('Lena')
else: print('Kiriya')
'-- 예전 기록 > BOJ' 카테고리의 다른 글
[ BOJ ] 17141 : 연구소 2 ( GOLD 4 ) / Python (0) | 2024.02.17 |
---|---|
[ BOJ ] 1025 : 제곱수 찾기 ( GOLD 5 ) / Python (0) | 2024.02.17 |
[ BOJ ] 2688 : 줄어들지 않아 ( SILVER 1 ) / Python (0) | 2024.02.17 |
[ BOJ ] 4358 : 생태학 ( SILVER 2 ) / Python (0) | 2024.02.17 |
[ BOJ ] 17626 : Four Squares ( SILVER 3 ) / Python (0) | 2024.02.17 |