자물쇠

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

요약
N개의 원형 다이얼로 이루어진 자물쇠에서 최대 세 개의 인접한 다이얼을 한 번에 1~3칸씩 돌리는 연산으로 현재 상태를 비밀번호로 바꾸는 최소 연산 횟수를 구하는 문제입니다.
난이도

보통10점 중 7점

유형
동적 계획법, 수학, 그리디, 배열
정답자
아직 제출이 없습니다

문제

노트북은 자물쇠로 잠겨 있다. 이 자물쇠는 원형 디스크 NN개로 이루어져 있다. 각 디스크에는 0부터 9까지의 숫자가 하나 표시되어 있으며, 디스크가 원형이므로 0과 9는 서로 인접해 있다.

한 번의 조작에서는 비어 있지 않은 연속한 디스크를 최대 3개 고른다. 그리고 고른 모든 디스크를 같은 방향으로 같은 칸 수만큼 돌린다. 돌리는 칸 수는 1칸 이상 3칸 이하이고, 방향은 시계 방향 또는 반시계 방향 중 하나이다.

현재 자물쇠의 상태와 비밀번호가 주어질 때, 자물쇠를 열기 위해 필요한 조작 횟수의 최솟값을 구하라.

상태가 555이고 비밀번호가 464라면, 각 디스크를 따로 돌릴 경우 3번의 조작이 필요하다. 하지만 디스크 3개를 함께 반시계 방향으로 1칸 돌려 444로 만든 뒤, 두 번째 디스크를 시계 방향으로 2칸 돌리면 464가 되므로 2번이면 충분하다.

입력

첫째 줄에 비밀번호의 길이이자 자물쇠의 디스크 개수인 NN이 주어진다. NN은 100 이하의 양의 정수이다.

둘째 줄에 현재 자물쇠의 상태가 주어지고, 셋째 줄에 비밀번호가 주어진다. 두 문자열의 길이는 모두 NN이며, 0부터 9까지의 숫자로만 이루어져 있다.

출력

자물쇠를 열기 위해 필요한 조작 횟수의 최솟값을 출력한다.

예제4

  1. 예제 1

    입력
    3
    555
    464
    
    예상 출력
    2
    
  2. 예제 2

    입력
    4
    1234
    3456
    
    예상 출력
    2
    
  3. 예제 3

    입력
    8
    06012005
    06012005
    
    예상 출력
    0
    
  4. 예제 4

    입력
    9
    123456789
    567412490
    
    예상 출력
    5