[백준/파이썬] 2160번 그림 비교 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 2160번 그림 비교
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
여러 개의 5x7 그림 중 서로 가장 비슷한(다른 칸 수가 최소인) 두 그림 번호를 찾는 문제입니다.
코드
n = int(input())
paints = [{'X':set([]), '.':set([])} for _ in range(n)]
for no in range(n):
for i in range(5):
s = input()
for j in range(len(s)):
paints[no][s[j]].add((i, j))
diffs = []
for i in range(n):
for j in range(i+1, n):
diffs.append((abs(len(paints[i]['.'] - paints[j]['.'])) +\
abs(len(paints[i]['X'] - paints[j]['X'])),
i + 1, j + 1))
print(*list(min(diffs))[1:])
설명
각 그림의 X/. 좌표 집합을 저장한 뒤
모든 그림 쌍에 대해 차이를 계산해서
최솟값을 가지는 번호 쌍을 출력합니다.
댓글남기기