pinkish15   4년 전

저는 문제를 패턴 형식으로 생각했고, 패턴이 같은 경우와 패턴이 다른 경우로 나누어서 문제를 풀었어요.

1. 먼저 현재상태 패턴과 목표상태 패턴이 모두 같은 경우 -> 다 돌려주면 됌 (ex. 444와 555는 일치)

2. 패턴이 다를 경우

     그중 2개의 패턴이 일치할 경우

         1) 2번째 패턴과 3번째 패턴이 일치하는 경우(ex. 123과 467의 경우) -> 넘어간다. 왜냐면 다음 수를 합쳤을 때,  234랑 678이면 한번에 돌릴 수 있고, 아니어도 2-2)으로 돌려주면 되기에.

        2) 1번째 패턴과 2번째 패턴이 일치하는 경우(ex. 237과 678의 경우) -> i번째와 i+1번째의 현재상태를 목표상태로 바꿔준다.

       3) 1번째 패턴과 3번째 패턴이 일치하는 경우(ex. 135와 175의 경우) -> i번째와 i+2번째의 현재상태를 목표상태로 바꿔준다.

를 N-2번 돌리고

현재상태와 목표상태가 일치하지 않는 디스크들을 한번씩 돌려주었는데요,

예제도 다 맞고 직접 만든 예제도 다 맞는데 어디에서 반례가 생기는지 궁금해서 질문 올려요!

simm4256   4년 전

5

11111

23432


3이 정답입니다. 이 코드는 4를 출력하네요

댓글을 작성하려면 로그인해야 합니다.