알고리즘
[구름톤 챌린지] Day 9 - 폭탄 구현하기(2)
motti
2023. 9. 3. 17:05
반응형
https://level.goorm.io/exam/195691/%ED%8F%AD%ED%83%84-%EA%B5%AC%ED%98%84%ED%95%98%EA%B8%B0-2/quiz/1
구름LEVEL
난이도별 다양한 문제를 해결함으로써 SW 역량을 향상시킬 수 있습니다.
level.goorm.io
문제
풀이
n,k = map(int,input().split())
arr = [list(input().split()) for _ in range(n)]
score = [ [0]*n for _ in range(n)]
dx = [-1,1,0,0,0]
dy = [0,0,-1,1,0]
for _ in range(k):
y,x = map(int,input().split())
y -= 1
x -= 1
for h in range(len(dx)):
ny = y + dx[h]
nx = x + dy[h]
if 0<=ny<n and 0<=nx<n:
if arr[ny][nx] == '0':
score[ny][nx] += 1
elif arr[ny][nx] == '@':
score[ny][nx] += 2
print(max(map(max,score)))
1. BFS를 이용하여 상하좌우 자기자신까지 5자리를 탐색하고 조건에 맞을 경우 score를 갱신
2. score에서 최댓값을 구할때 max(map(max,score))를 사용하면 map이 제일 큰 값이 있는 행을 뽑고 다시 max를 통해 최댓값을 출력한다.
반응형