이렇게 가장자리를 0으로 초기화 하는 방법..?
a = [[0]7 for _ in range(n)]
0 으로 77 하고 넣을 수 있는가 했더니.. 그건 너무 복잡하고..
#1. Alt+W+N 입력하고 Alt+W+V :
import sys
sys.stdin = open("input.txt", "rt")
n = int(input())
a = [list(map(int,input().split())) for _ in range(n)]
a.insert(0,[0]*n)
for x in a: # 각 행에 접근 가능
x.insert(0,0)
x.append(0)
a.insert(n+1,[0]*n)
print(a)
#1. Alt+W+N 입력하고 Alt+W+V :
import sys
sys.stdin = open("input.txt", "rt")
n = int(input())
a = [list(map(int,input().split())) for _ in range(n)]
a.insert(0,[0]*n)
for x in a: # 각 행에 접근 가능
x.insert(0,0)
x.append(0)
a.insert(n+1,[0]*n)
cnt = 0
for i in range(1,n+1):
for j in range(1,n+1):
if a[i][j]>a[i-1][j] and a[i][j]>a[i][j-1] and a[i][j]>a[i+1][j] and a[i][j]>a[i][j+1]:
cnt+=1
print(cnt)
했더니..
배열에서 한번 나가나보다...?
이유는 모르겠다.
이유 알았다. 0이 부족한거였다.
2가 가로세로 비교할려면 적어도 n+1 개의 0이 아래 줄에 필요한데 나는그냥
a.append([0](n)) 했어서 그랬던것 같다. 그래서
a.append([0](n+2)) 이렇게 바꿔줬더니 되더라 ㅎ
아니면 그냥 위치 자체를
이렇게 옮기면 되고 바보야 ㅎㅎ 왜 insert가 for 문 아래 있었었니 ㅎㅎ?
#1. Alt+W+N 입력하고 Alt+W+V :
import sys
#sys.stdin = open("input.txt", "rt")
# 앞으로는 이런식으로 배열을 하나 만들어서 보자!!
dx = [-1, 0, 1, 0]
dy = [0, 1, 0, -1]
n = int(input())
a = [list(map(int,input().split())) for _ in range(n)]
a.insert(0,[0]*n)
a.append([0]*n)
for x in a: # 각 행에 접근 가능
x.insert(0,0)
x.append(0)
cnt = 0
for i in range(1,n+1):
for j in range(1,n+1):
if all(a[i][j]>a[i+dx[k]][j+dy[k]]for k in range(4)): # 이렇게 하면 4번 돌게 되는 것!!!!
# all 은 모두가 참이어야 참이다.
cnt+=1
print(cnt)
py 와 px 라는 배열을 활용해서 더하기 빼기를 실행했다.
all 함수를 사용해 and를 없애 가독성을 올렸고,
for 문은 뒤에 붙여서 활용할 수 있다는 것을 배웠다.