본문 바로가기
교육/구름톤 챌린지

[구름톤 챌린지 WEEK 2 - 완전 탐색] DAY 9. 폭탄 구현하기(2)

by hi-rachel 2023. 8. 24.

DAY 9. 폭탄 구현하기(2)

import sys
input = sys.stdin.readline

n, k = map(int, input().split())

# 땅 list 만들기
ground = []
for i in range(n):
    ground.append(input().split())

reset_ground = [[0] * n for _ in range(n)]

# 4가지 방향이랑 현재
steps = [(0, -1), (1, 0), (0, 1), (-1, 0), (0, 0)]

for i in range(k):
    # 폭탄 좌표 받기
    y, x = map(int, input().rstrip().split())
    y -= 1
    x -= 1
    # 폭탄 투하
    for step in steps:
      ny = y + step[0]
      nx = x + step[1]
      if 0 <= ny < n and 0 <= nx < n and ground[ny][nx] != '#':
          if ground[ny][nx] == '0':
            reset_ground[ny][nx] += 1
          elif ground[ny][nx] == '@':
            reset_ground[ny][nx] += 2      

print(max(map(max, reset_ground)))

for문 안에서 반복적으로 입력값 받을시 시간 초과 문제가 발생할 수 있으니 sys 모듈 사용

sys.stdin.readline은 뒤에 개행 문자가 포함되므로 rstrip() 혹은 split() 함수로 공백을 기준으로 값 나눠주기.

이중 list에서 최댓값 찾기 => max, map 이용