목표 : 구멍을 X로 매꾼다
- 이때 구멍은 상하좌우보다 작은 값인 것
- 가장 사이드쪽에(테두리) 있는 값은 작아도 상관없음 = 구멍이 아니고 일종의 절벽? 내리막길? 이런느낌인듯
for문 두개 돌릴 때 [0]이랑 [-1] 부분 제외하고 풀서치
[방법 a] arr에 {상하좌우 a_ij} 다 넣고, if a_ij == max(arr)이면 구멍임 <-- 상하좌우 aij가 전부 1이면(같은깊이면) 답이안나옴
[방법 b] arr에 {상하좌우}만 넣고, if a_ij > max(arr)이면 구멍임 <-- 이거로가자
구멍을 -1로 만들고
마지막에 -1을 'X'로 바꾸는 작업을 해야할듯?
graph = [[1, 1, 1, 2], [1, -1, -1, 2], [1, 8, -1, 2], [1, 2, 3, 4]]
for i in range(len(graph)):
if -1 in graph[i]:
graph[i][graph[i].index(-1)] = 'X'
print(graph)
graph = [[1, 1, 1, 2], [1, -1, -1, 2], [1, 8, -1, 2], [1, 2, 3, 4]]
for i in range(len(graph)):
for j in range(len(graph)):
if -1 == graph[i][j]:
graph[i][j] = 'X'
print(graph)
def cavityMap(n, grid):
graph = []
for i in grid:
graph.append(list(map(int,i)))
for y in range(1, n-1):
for x in range(1, n-1):
friend = [graph[y-1][x], graph[y+1][x], graph[y][x-1], graph[y][x+1]]
if graph[y][x] > max(friend):
graph[y][x] = -1
for i in range(len(graph)):
if -1 in graph[i]:
graph[i][graph[i].index(-1)] = 'X'
ans = []
for i in graph:
ans.append("".join(map(str,i)))
return ans
n = 4
grid = ['1112', '1912', '1892', '1234']
result = cavityMap(n, grid)
print("\n".join(result))
def cavityMap(n, grid):
graph = []
visit = [[0] * n for _ in range(n)]
for i in grid:
graph.append(list(map(int,i)))
for y in range(1, n-1):
for x in range(1, n-1):
friend = [graph[y-1][x], graph[y+1][x], graph[y][x-1], graph[y][x+1]]
if graph[y][x] > max(friend):
visit[y][x] = -1
for i in range(n):
for j in range(n):
if -1 == visit[i][j]:
graph[i][j] = 'X'
ans = []
for i in graph:
ans.append("".join(map(str,i)))
return ans
n = 4
grid = ['1112', '1912', '1892', '1234']
result = cavityMap(n, grid)
print("\n".join(result))
#!/bin/python3
import math
import os
import random
import re
import sys
#
# Complete the 'cavityMap' function below.
#
# The function is expected to return a STRING_ARRAY.
# The function accepts STRING_ARRAY grid as parameter.
#
def cavityMap(n, grid):
graph = []
visit = [[0] * n for _ in range(n)]
for i in grid:
graph.append(list(map(int,i)))
for y in range(1, n-1):
for x in range(1, n-1):
friend = [graph[y-1][x], graph[y+1][x], graph[y][x-1], graph[y][x+1]]
if graph[y][x] > max(friend):
visit[y][x] = -1
for i in range(n):
for j in range(n):
if -1 == visit[i][j]:
graph[i][j] = 'X'
ans = []
for i in graph:
ans.append("".join(map(str,i)))
return ans
if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')
n = int(input().strip())
grid = []
for _ in range(n):
grid_item = input()
grid.append(grid_item)
result = cavityMap(n, grid)
fptr.write('\n'.join(result))
fptr.write('\n')
fptr.close()