[C++] 프로그래머스 조이스틱


[C++] 프로그래머스 조이스틱

문제 접근법 조이스틱을 위 아래로 움직이는건 쉬우니 설명을 생략하도록 하겠습니다. 문제의 핵심은 좌, 우로 몇번 이동하는게 최소값인지 찾는 것입니다. 처음 문제를 봤을때, 아래 두가지 방법을 떠올렸습니다. 1. 정방향 이동 2. 역방향 이동 하지만 반례 "ABBAAAAAAAAAABA" 와 같은 것들을 마주하면 1, 2 알고리즘으로는 해결할 수 없습니다. 따라서 다음두가지 알고리즘을 더 생각했습니다. 3. 정방향 이동 - 한 지점에서 역방향으로 터닝 4. 역방향 이동 - 한 지점에서 정방향으로 터닝 그림으로 추가 설명 하겠습니다. 그렇다면 위 네가지 케이스 중 최소값을 찾으면 되는걸까요? 아뇨. 그럴필요 없습니다. 3번, 4번 케이스 안에 1, 2번 케이스를 녹아 들어가기 때문이에요. 결국 3, 4번 케이스의 최소값을 찾아주면 됩니다! 코드로 어떻게 구현하면 좋을까요?? 우선 첫번째 A가 아닌 인덱스(idx1)를 알고, 그 다음 인덱스(idx2)를 알 수 있으면 범위 (idx1,idx...



원문링크 : [C++] 프로그래머스 조이스틱