코드업 파이썬 1525, 코드업 1525 , 크레이지 아케이드
<문제 출처>
https://codeup.kr/problem.php?id=1525
------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------
정답
check=[]
for _ in range(10):
check.append(list(map(int,input().split())))
result=[[0]*10 for _ in range(10)]
for i in range(10):
for j in range(10):
if check[i][j]==-1:
result[i][j]=-1
def right(result,a,b,cnt):
for i in range(1,cnt+1):
if b+i>9:
break
if result[a][b+i]==-1:
break
result[a][b+i]=-2
return result
def left(result,a,b,cnt):
for i in range(1,cnt+1):
if b-i>9:
break
if result[a][b-i]==-1 or b-i<0:
break
result[a][b-i]=-2
return result
def down(result,a,b,cnt):
for i in range(1,cnt+1):
if a+i>9:
break
if result[a+i][b]==-1 or a+i>9:
break
result[a+i][b]=-2
return result
def up(result,a,b,cnt):
for i in range(1,cnt+1):
if a-i>9:
break
if result[a-i][b]==-1 or a-i<0:
break
result[a-i][b]=-2
return result
for i in range(10):
for j in range(10):
tmp=check[i][j]
if tmp!=0 and tmp!=-1:
result[i][j]=-2
if i==0: # 0행
if j==0:
result=right(result,i,j,tmp)
result=down(result,i,j,tmp)
elif j==9:
result=left(result,i,j,tmp)
result=down(result,i,j,tmp)
else:
result=left(result,i,j,tmp)
result=right(result,i,j,tmp)
result=down(result,i,j,tmp)
elif i==9:
if j==0:
result=right(result,i,j,tmp)
result=up(result,i,j,tmp)
elif j==9:
result=left(result,i,j,tmp)
result=up(result,i,j,tmp)
else:
result=left(result,i,j,tmp)
result=right(result,i,j,tmp)
result=up(result,i,j,tmp)
else:
if j==0:
result=right(result,i,j,tmp)
result=up(result,i,j,tmp)
result=down(result,i,j,tmp)
elif j==9:
result=left(result,i,j,tmp)
result=up(result,i,j,tmp)
result=down(result,i,j,tmp)
else:
result=left(result,i,j,tmp)
result=right(result,i,j,tmp)
result=up(result,i,j,tmp)
result=down(result,i,j,tmp)
N=int(input())
Player=[]
for i in range(1,N+1):
x,y=map(int,input().split())
x-=1
y-=1
if result[x][y]==-2:
Player.append('dead')
else:
Player.append('survive')
result[x][y]=i
for i in range(10):
print(*result[i],end=' ')
print()
print('Character Information')
for i in range(N):
if Player[i]=='dead':
print('player %d dead' %(i+1))
elif Player[i]=='survive':
print('player %d survive' %(i+1))
반응형
'알고리즘 공부 > 코드업 - 파이썬' 카테고리의 다른 글
코드업 파이썬 4085, 코드업 4085 , 농사짓기 가장 좋은 땅 고르기 (0) | 2022.07.13 |
---|---|
코드업 파이썬 1524, 코드업 1524 , 지뢰 찾기 1 (0) | 2022.07.13 |
코드업 파이썬 1513, 코드업 1513 , 지그재그 배열 3 (0) | 2022.07.13 |
코드업 파이썬 1512, 코드업 1512 , 숫자 등고선 (0) | 2022.07.13 |
코드업 파이썬 1511, 코드업 1511 , 테두리의 합 (0) | 2022.07.13 |