할껀하고놀자

[SW역량테스트준비] 캐슬 디펜스 본문

[IT]

[SW역량테스트준비] 캐슬 디펜스

working_hard 2019. 10. 19. 11:44
728x90
  • 궁수 3명 지정해준다

  • n번만큼 돌면서

    • 3명의 아쳐들과 비교한다

      • 거리를 비교

    • 선택받은 적은 킬한다

    • 한칸씩 밑으로 내린다

  • 정답이 최대인 걸 구한다.

수도코드 짜는게 솔직히 제일 중요한걸 느끼는데 하루남았네?

 

import sys,copy
from heapq import heappush,heappop
from sys import stdin

# sys.stdin = open('input.txt')
input = stdin.readline

n,m,d = map(int,input().split())
a = [list(map(int,input().split())) for _ in range(n)]
archer = [0]*3

def kill(b):
    cnt = 0
    for _ in range(n):
        v =[]
        for idx in range(3):
            q = []
            for i in range(n):
                for j in range(m):
                    if b[i][j]==1:
                        dist = abs(n-i)+abs(archer[idx]-j)  # 이 부분 수정하였음. idx -> archer[idx]
                        if dist<=d:
                            heappush(q,(dist,j,i))
            if q:
                _,j,i = heappop(q)
                v.append((i,j))
        for i,j in v:
            if b[i][j]:
                b[i][j]=0
                cnt +=1
        for i in range(n-2,-1,-1):
            for j in range(m):
                b[i+1][j] = b[i][j]
        for i in range(m):
            b[0][i] = 0
    return cnt


ans = 0
for i in range(m):
    for j in range(i+1,m):
        for k in range(j+1,m):
            archer[0],archer[1],archer[2] = i,j,k
            b = copy.deepcopy(a)
            ans = max(ans,kill(b))
print(ans)

'[IT]' 카테고리의 다른 글

[SW역량테스트준비] 낚시왕  (0) 2019.10.19
[SW역량테스트준비] 치킨 배달  (0) 2019.10.17
[SW역량테스트준비] 연구소 3  (0) 2019.10.13
[SW역량테스트준비] 아기상어  (0) 2019.10.13
[C++]define와 typedef의 차이점  (0) 2018.02.15
Comments