n, m = map(int, input().split())
arr = []
for i in range(n):
arr.append(list(0 for j in range(n)))
for i in range(m):
x, y, p = map(int, input().split())
x -= 1
y -= 1
arr[y][x] += 1
yy = y-1
for j in range(p):
if yy < 0:
break
arr[yy][x] += 1
yy -= 1
xx = x + 1
for j in range(p):
if xx >= n:
break
arr[y][xx] += 1
xx += 1
yy = y+1
for j in range(p):
if yy >= n:
break
arr[yy][x] += 1
yy += 1
xx = x-1
for j in range(p):
if xx < 0:
break
arr[y][xx] += 1
xx -= 1
sum = 0
for i in range(n):
sum += arr[i].count(0)
print(sum)
1. c언어 문법 (o)
2. c언어 자료구조 (dfs/bfs 제외 o)
3. 파이썬 문법 ( ~ 리스트) (함수, 재귀, 클래스, 상속)
-> Unity...
#include <stdio.h>
int main()
{
int n,m,x,y,i,j,p,sum=0,arr[509][509]={};
scanf("%d %d", &n, &m);
for(i=1;i<=m;i++)
{
scanf("%d %d %d", &x, &y, &p);
arr[y][x]++;
long long int yy=y-1;
for(j=1;j<=p;j++)
{
if(yy < 1)
{
break;
}
arr[yy][x]=1;
yy--;
}
long long int xx=x+1;
for (j=1;j<=p;j++)
{
if(xx > n)
{
break;
}
arr[y][xx]=1;
xx++;
}
yy = y+1;
for(j=1;j<=p;j++)
{
if(yy>n)
{
break;
}
arr[yy][x]=1;
yy++;
}
xx = x-1;
for(j=1;j<=p;j++)
{
if (xx < 1)
{
break;
}
arr[y][xx]=1;
xx--;
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(arr[i][j] == 0)
{
sum++;
}
}
}
printf("%d", sum);
return 0;
}