디지털 티비

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

요약
채널 목록에서 화살표 이동과 스왑 버튼만으로 KBS1을 1번, KBS2를 2번 위치로 옮기는 최소 버튼 횟수를 구합니다.
난이도

보통10점 중 5점

유형
그리디, 시뮬레이션, 배열
정답자
아직 제출이 없습니다

문제

새 디지털 수신기를 산 상근이는 시청 가능한 채널 목록에서 KBS1을 첫 번째, KBS2를 두 번째 위치로 만들려고 한다. 모든 채널의 이름은 서로 다르며, 목록에는 항상 KBS1과 KBS2가 들어 있다.

목록의 왼쪽에는 현재 선택된 채널을 가리키는 화살표가 있다. 처음에 화살표는 맨 위 채널을 가리킨다. 다음 네 개의 버튼으로 목록의 순서를 바꿀 수 있다.

  1. 화살표를 한 칸 아래로 내린다. (채널 ii에서 i+1i+1로)
  2. 화살표를 한 칸 위로 올린다. (채널 ii에서 i−1i-1로)
  3. 현재 선택한 채널을 한 칸 아래로 내린다. (채널 ii와 i+1i+1의 위치를 서로 바꾸며, 화살표는 i+1i+1을 가리키게 된다.)
  4. 현재 선택한 채널을 한 칸 위로 올린다. (채널 ii와 i−1i-1의 위치를 서로 바꾸며, 화살표는 i−1i-1을 가리키게 된다.)

화살표가 목록의 범위를 벗어나게 만드는 버튼은 무시된다.

KBS1을 첫 번째로, KBS2를 두 번째로 만들기만 하면 되고, 두 채널을 제외한 나머지 채널의 순서는 상관없다. 목표를 이루기 위해 눌러야 하는 버튼의 최소 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 채널의 수 NN이 주어진다 (2≤N≤1002 \le N \le 100). 다음 NN개의 줄에 각 채널의 이름이 현재 목록 순서대로 한 줄에 하나씩 주어진다. 채널 이름은 최대 1010글자이며, 알파벳 대문자와 숫자로만 이루어진다. KBS1이 이미 첫 번째이면서 동시에 KBS2가 이미 두 번째인 입력은 주어지지 않는다.

출력

KBS1을 첫 번째로, KBS2를 두 번째로 만들기 위해 눌러야 하는 버튼의 최소 개수를 한 줄에 출력한다.

예제5

  1. 예제 1

    입력
    3
    MBC
    KBS1
    KBS2
    
    예상 출력
    2
    
  2. 예제 2

    입력
    4
    ABC1
    ABC02
    KBS2
    KBS1
    
    예상 출력
    8
    
  3. 예제 3

    입력
    2
    KBS2
    KBS1
    
    예상 출력
    1
    
  4. 예제 4

    입력
    5
    KBS1
    AAA
    BBB
    CCC
    KBS2
    
    예상 출력
    7
    
  5. 예제 5

    입력
    6
    AA
    BB
    KBS1
    KBS2
    CC
    DD
    
    예상 출력
    8