[참고]
3
1 2 3
4 5 6
7 8 9
N = int(input())
arr = [list(map(int, input().split())) for _ in range(N)]
N = int(input())
arr = [list(map(int, input())) for _ in range(N)]
n X m 배열의 n * m 개의 모든 원소를 빠짐없이 조사하는 방법
arr = [[0] * 3 for _ in range(4)]
for i in range(3):
for j in range(4):
arr[j][i] += 1
i 행이고 j 열에 접근 한 것
가운데 i를 기준으로 상하좌우에 계산한 좌표를 놓는다
i - 1 j - 1 / j / j + 1
i
i + 1
주변 4개의 칸이 더 큰가? > 주변 칸에 접근할 수 있어야 한다
di = [0, 1, 0, -1]
dj = [1, 0, -1, 0]
N = 3
for i in range(N):
for j in range(N):
for k in range(4):
ni, nj = i + di[k], j + dj[k]
if 0<=ni<N and 0<=nj<N:
print(i, j, di, dj)
상하좌우로 쭉 뻗어나가는 경우
di = [0, 1, 0, -1]
dj = [1, 0, -1, 0]
N = 3
p = 3
for i in range(N):
for j in range(N):
for k in range(4):
for l in range(1, p + 1):
ni, nj = i + di[k] * l, j + dj[k] * l
if 0<=ni<N and 0<=nj<N:
print(i, j, di, dj)
대각선도 가능
1이 부분집합에 포함되지 않으면 0, 포함되면 1이라고 표시
어떤 부분집합에 대해 각 원소의 포함여부를 나타낼 수 있는 배열을 만들어서 사용
A = [1, 2, 3, 4]
bit = [0] * 4
for i in range(2):
bit[0] = i
for j in range(2):
bit[1] = j
for k in range(2):
bit[2] = k
for l in range(2):
bit[3] = l
print(bit, end=' ')
s = 0
for p in range(4):
if bit[p]:
print(A[p], end=' ')
s += A[p]
print(s)
- n개의 원소가 있으면 n개의 비트로 표현 가능