본문 바로가기
알고리즘/완전탐색

[백준][Python] 2160번 그림 비교

by 임짠짠 2022. 7. 18.
반응형
 

2160번: 그림 비교

N(2 ≤ N ≤ 50)개의 그림이 있다. 각각의 그림은 5×7의 크기이고, 두 가지 색으로 되어 있다. 이때 두 가지의 색을 각각 ‘X’와 ‘.’으로 표현하기로 하자. 이러한 그림들이 주어졌을 때, 가장 비

www.acmicpc.net

 

코드

def check(i,j):
	cnt = 0
	for a in range(5):
		for b in range(7):
			if n_list[i][a][b] != n_list[j][a][b]:
				cnt += 1
	return cnt

n = int(input())
n_list = []
for i in range(n):
	i_list= []
	for j in range(5):
		i_list.append(list(input()))
	n_list.append(i_list)	
min_n = 36
for i in range(n):
	for j in range(i+1,n):
		num = check(i,j)
		if num < min_n:
			a,b = i,j
			min_n = num

print(a+1,b+1)

 

설명

check 함수에서 칸을 하나씩 모두 비교해서 다르면 cnt를 1 증가시켰고 이 값을 return 해줬다. return 받은 값이 기존의 최솟값보다 작은 경우 최솟값을 갱신시켜주고 최솟값을 갖는 두 그림의 번호를 a,b에 저장했다.

최솟값의 초기값은 그림이 총 35칸이기 때문에 36으로 두었다.

반응형

댓글