Python/[코드트리]

[코드트리] 새로운 2차원 배열의 선언 > 두 개의 격자 비교하기

hyunnn_00 2023. 7. 14. 13:31
n x m 크기의 2차원 격자가 두 개 주어지고, 새로운 2차원 격자를 만들려고 합니다.
주어진 두 격자에서 같은 위치에 존재하는 숫자의 값이 같다면 0, 그렇지 않다면 1을 적어주려 합니다.
새로운 2차원 격자를 만들어 이를 해결하는 프로그램을 작성해보세요.

 

 

 


문제풀이 로직
1. n, m을 입력 받는다.
2. 2차원 배열 2개를 입력 받는다.
3. 값을 비교해서 0과 1 원소를 넣을 2차원 배열을 생성한다.(grid 배열)
4. 원소를 비교해서 같으면 grid 배열에 0, 다르면 1 원소를 입력하여 출력

 

# n, m을 입력받습니다.
n, m = tuple(map(int, input().split()))

# 첫 번째 2차원 배열을 구현해 정수를 입력받습니다.
arr_1 = [
	list(map(int, input().split()))
	for _ in range(n)
]

# 두 번째 2차원 배열을 구현해 정수를 입력받습니다.
arr_2 = [
	list(map(int, input().split()))
	for _ in range(n)
]
	
# 두 배열의 같음 여부를 새로운 배열에 담습니다.
arr_3 = [
	[1 if arr_1[i][j] != arr_2[i][j] else 0 for j in range(m)]
	for i in range(n)
]

# 새로운 배열을 출력합니다.
for row in arr_3:
	for elem in row:
		print(elem, end=" ")
	print()
# n, m 입력받기
n, m = tuple(map(int, input().split()))

grid_1 = []
grid_2 = []

# 새로운 값을 집어넣을 배열 
grid = [ [ 0 for _ in range(m) ] for _ in range(n) ]

# n개의 줄에 걸쳐 격자 생성
for _ in range(n):
    row = [int(num) for num in input().split()]
    grid_1.append(row)

for _ in range(n):
    row = [int(num) for num in input().split()]
    grid_2.append(row)

for i in range(n):
    for j in range(m):
        if grid_1[i][j] == grid_2[i][j]:
            print(0, end = " ")
        else:
            print(1, end = " ")
    print()