만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

성공적인 문자열

면접 대비

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

요약
주어진 문자열의 부분 문자열 중에서 같은 문자가 연속으로 나타나는 쌍을 하나 이상 포함하는 것의 개수를 센다.
난이도

보통10점 중 4점

유형
문자열, 조합론, 수학, 구현
정답자
아직 제출이 없습니다

문제

윤이는 영어 단어를 공부하고 있다. 윤이가 배운 많은 단어 중에서 "success"는 윤이가 가장 좋아하는 단어이고, "failure"는 윤이가 가장 싫어하는 단어이다.

윤이는 "success"에는 같은 문자가 연속으로 두 번 나타나지만 "failure"에는 나타나지 않는다는 것을 알아냈다. 그래서 윤이는 "success"의 성질을 가진 문자열을 "성공적인 문자열"이라고 부르기로 했다. 형식적으로, 문자열 SS는 Si=Si+1S_i = S_{i+1}인 위치 ii가 존재할 때 성공적인 문자열이다. 여기서 SiS_i는 SS의 ii번째 문자를 나타낸다.

윤이는 주어진 문자열의 부분 문자열 중 성공적인 문자열이 몇 개인지 세고 싶어 한다. 성공적인 부분 문자열의 개수를 세는 프로그램을 작성하시오. 두 부분 문자열은 문자열이 같더라도 위치가 다르면 서로 다른 것으로 본다.

입력

첫째 줄에 문자열의 길이를 나타내는 정수 NN이 주어진다. (1≤N≤106)(1 \leq N \leq 10^6)

둘째 줄에 소문자 알파벳으로 이루어진 길이 NN의 문자열이 주어진다.

출력

주어진 문자열의 부분 문자열 중 성공적인 문자열의 개수를 출력한다.

예제3

  1. 예제 1

    입력
    7
    success
    
    예상 출력
    15
    
  2. 예제 2

    입력
    7
    failure
    
    예상 출력
    0
    
  3. 예제 3

    입력
    4
    aaaa
    
    예상 출력
    6