본문 바로가기

프로그래밍

[백준 1026 ] 보물

[백준 1026 ] 보물

두 개의 리스트가 주어질 때, 곱의 값을 최소가 되도록 정렬하는 문제

5
1 1 1 6 0
2 7 8 3 1

다음과 같은 형태가 주어질 때,

두 번째 리스트는 놔둔 상태에서 첫 번째 리스트를 변경해서 곱의 값을 최소가 되도록 해야 한다.

문제링크

Key Point

  • 곱셈에 대해서는 첫 번째 리스트의 순서를 바꾸는 것은 두 번째 리스트의 순서를 바꾸는 것과 같다.
  • 큰 값을 작은 값이랑 곱하게 하는 것이 값을 최소로 만든다.

Solution

a, b = input().split()
count = len(b)

for i in range(len(b)-len(a)+1):
    summ = sum([True for x,y in zip(a,b[i:len(a)+i]) if x!=y])
    count = min(count, summ)
print(count)