전구 상태 바꾸기

면접 대비

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

요약
연속한 세 전구의 색을 R에서 G, G에서 B, B에서 R로 바꾸는 연산으로 모든 전구를 같은 색으로 만드는 최소 횟수를 구하고, 불가능하면 -1을 출력한다.
난이도

보통10점 중 6점

유형
그리디, 구현, 수학, 완전 탐색
정답자
아직 제출이 없습니다

문제

NN개의 전구가 일렬로 세워져 빛나고 있다. 각각의 전구는 빨간색, 초록색, 파란색 중 하나의 색으로 빛나고 있다. 지원이는 NN개의 전구 중 연속한 세 전구를 선택한 후에 그 전구들의 상태를 바꿀 수 있다. 전구의 상태를 바꾼다는 것은 빨간색으로 빛나는 전구는 초록색으로, 초록색으로 빛나는 전구는 파란색으로, 파란색으로 빛나는 전구는 빨간색으로 빛나게 바꾼다는 것이다.

연속한 세 전구의 상태를 바꾸는 과정을 통해 모든 전구가 같은 색으로 빛나게 하려면 이 과정을 최소 몇 번 수행해야 하는지 구해보자.

입력

첫째 줄에 전구의 개수 N(3≤N≤100,000)N(3\le N\le 100\\, 000)이 주어진다.

둘째 줄에 각각의 전구가 어떤 색으로 빛나고 있는지를 의미하는 길이가 NN인 문자열 SS가 주어진다. SS의 ii번째 문자는 ii번째 전구가 어떤 색으로 빛나고 있는지를 의미한다. SS는 알파벳 대문자 R, G, B로 이루어져 있으며, R은 빨간색을, G는 초록색을, B는 파란색을 의미한다.

출력

모든 전구가 같은 색으로 빛나게 하기 위해 연속한 세 전구의 상태를 바꾸는 과정을 최소 몇 번 수행해야 하는지 출력한다.

만약 모든 전구가 같은 색으로 빛나게 할 수 없다면 -1을 출력한다.

예제3

  1. 예제 1

    입력
    4
    RGGB
    
    예상 출력
    3
    
  2. 예제 2

    입력
    5
    BGRGB
    
    예상 출력
    3
    
  3. 예제 3

    입력
    3
    BRR
    
    예상 출력
    -1