오셀로 재배치
시간 제한2초메모리 제한256 MB
길이 N인 W/B 문자열 두 개가 주어질 때, 두 위치 교환과 한 조각 뒤집기 연산만으로 시작 배열을 목표 배열로 바꾸는 최소 연산 횟수를 구한다.
문제
로봇을 좋아하는 세희는 로봇 동아리에서 카메라와 센서, 라즈베리 파이, 집게발로 로봇을 만들었다. 세희는 이 로봇으로 오셀로 재배치 작업을 한다. 오셀로 말은 한쪽 면이 검은색, 반대쪽 면이 흰색이다. 세희의 목표는 처음 놓여 있는 말을 주어진 목표 상태와 똑같이 만드는 것이다.
로봇은 다음 두 작업 중 하나를 한 번에 하나씩 할 수 있다.
- 놓여 있는 말 중 임의의 두 개를 골라 서로 위치를 바꾼다.
- 말 하나를 들어 뒤집어 놓아 색을 바꾼다.
위 배치에서 세 번째 말과 네 번째 말을 각각 뒤집으면 두 번 만에 목표 상태가 된다. 그런데 두 번 뒤집는 대신 세 번째 말과 네 번째 말의 위치를 서로 바꾸면 한 번 만에 목표 상태에 도달한다.
초기 상태와 목표 상태가 주어질 때, 목표 상태를 만드는 데 필요한 작업의 최소 횟수를 구하는 프로그램을 작성하시오.
입력
입력은 표준 입력으로 주어진다. 첫째 줄에 테스트 데이터의 개수 가 주어진다. 각 테스트 데이터의 첫째 줄에는 오셀로 말의 개수 ()이 주어진다. 둘째 줄에는 초기 상태, 셋째 줄에는 목표 상태가 길이 의 문자열로 주어진다. 흰색 면이 보이는 말은 W, 검은색 면이 보이는 말은 B로 나타낸다.
출력
출력은 표준 출력을 사용한다. 각 테스트 데이터마다 초기 상태에서 목표 상태를 만들기 위한 작업의 최소 횟수를 한 줄에 하나씩 출력한다.