쉽게 브로드캐스트 가능한 텐서
면접 대비시간 제한1초메모리 제한2048 MB
두 차원 크기 배열을 오른쪽부터 맞췄을 때 겹치는 모든 쌍이 같거나 1을 포함하도록, 삽입할 1의 최소 개수를 구합니다.
문제
Little I는 머신러닝 학습에 널리 쓰이는 파이썬 라이브러리 PyTorch를 배우고 있다.
Little I는 PyTorch에 '브로드캐스팅'이라는 텐서 연산 기능이 있다는 것을 알게 되었다. 텐서는 다차원 배열로 생각할 수 있다. 차원 텐서 에서 길이가 인 수열 는 각 차원의 길이를 나타낸다. 즉 는 크기가 인 텐서다.
차원이 각각 , 인 두 텐서 와 는, 모든 정수 에 대해 이거나 , 중 하나 이상이 일 때, 그리고 그때에만 쉽게 브로드캐스트 가능하다.
Little I는 차원이 , 인 두 텐서를 가지고 있는데, 이 둘은 쉽게 브로드캐스트 가능하지 않을 수 있다.
Little I는 두 텐서를 쉽게 브로드캐스트 가능하게 만들려고 여러 번 연산을 할 수 있다(연산을 하지 않아도 된다). 각 연산은 또는 를 골라 그 수열의 원하는 위치에 을 하나 삽입한다.
두 텐서를 쉽게 브로드캐스트 가능하게 만드는 데 필요한 연산 횟수의 최솟값을 구하라.
입력
첫 번째 줄에 두 텐서의 차원 수를 뜻하는 정수 과 ()이 주어진다.
두 번째 줄에는 첫 번째 텐서의 각 차원 길이를 뜻하는 정수 개 ()이 주어진다.
세 번째 줄에는 두 번째 텐서의 각 차원 길이를 뜻하는 정수 개 ()이 주어진다.
출력
두 텐서를 쉽게 브로드캐스트 가능하게 만드는 데 필요한 의 최소 삽입 횟수를 한 줄에 출력한다.
힌트
예시에서 수열 의 두 번째 위치 앞에 을 삽입하면 가 되고, 이로써 두 텐서가 쉽게 브로드캐스트 가능해진다.