같은 증가 순서로 쓰레기 줍기

시간 제한2초메모리 제한128 MB

요약
이틀 동안 기록된 두 개의 쓰레기 크기 수열에서 공통으로 증가하는 최長 부분수열의 길이를 구하는 문제입니다.
난이도

보통10점 중 6점

유형
동적 계획법, 배열, 정렬
정답자
아직 제출이 없습니다

문제

당신은 이틀 동안 같은 길에 놓인 쓰레기를 줍는다.

각 날에는 첫 번째 쓰레기가 있는 위치에서 출발해 N번째 쓰레기가 있는 위치까지 한 방향으로만 걸어간다. 지나온 길을 되돌아갈 수 없으므로, 각 날에 주운 쓰레기들은 그날의 위치 순서대로 선택된 부분수열이어야 한다. 모든 쓰레기를 주울 필요는 없다.

고장 난 쓰레기봉투 때문에 다음 조건을 모두 만족해야 한다.

  • 첫째 날에 주운 쓰레기의 크기는 주운 순서대로 엄격히 증가해야 한다.
  • 둘째 날에 주운 쓰레기의 크기도 주운 순서대로 엄격히 증가해야 한다.
  • 두 날에 주운 쓰레기의 개수와 크기 순서가 완전히 같아야 한다. 예를 들어 첫째 날에 크기 2, 3, 5, 6인 쓰레기를 주웠다면, 둘째 날에도 정확히 2, 3, 5, 6을 그 순서대로 주워야 하며 다른 쓰레기는 주울 수 없다.

하루에 주울 수 있는 쓰레기의 최대 개수를 구하라.

입력

첫째 줄에 쓰레기의 개수 N이 주어진다. (N ≤ 1,000)

둘째 줄에는 첫째 날 쓰레기의 크기 N개가 위치 순서대로 주어진다.

셋째 줄에는 둘째 날 쓰레기의 크기 N개가 위치 순서대로 주어진다.

쓰레기의 크기는 50,000 이하의 자연수이다.

출력

하루에 주울 수 있는 쓰레기의 최대 개수를 출력한다.

예제2

  1. 예제 1

    입력
    10
    1 2 3 4 5 6 7 8 9 10
    1 3 5 7 9 2 4 6 8 10
    
    예상 출력
    6
    
  2. 예제 2

    입력
    4
    2 3 3 4
    2 3 3 4
    
    예상 출력
    3