아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

오리

면접 대비

시간 제한2초메모리 제한512 MB

요약
q,u,a,c,k로 이루어진 문자열을 최소 개수의 부분 수열로 나누어, 각각이 'quack'을 반복한 형태가 되게 한다.
난이도

보통10점 중 5점

유형
그리디, 시뮬레이션, 문자열
정답자
아직 제출이 없습니다

문제

오리의 울음소리는 "quack"이다. 올바른 울음소리는 "quack"을 한 번 이상 연속해서 이어 붙인 것이다. 예를 들어 "quack", "quackquack", "quackquackquackquack"은 올바른 울음소리이다.

영선이의 방에는 오리가 여러 마리 있는데, 문제를 푸는 데 몰두하다가 몇 마리인지 잊어버렸다. 어느 순간 오리들이 한꺼번에 울기 시작했고, 울음소리가 서로 섞였다. 영선이는 그 소리를 녹음해 두었고, 녹음을 다시 들으면서 방에 오리가 몇 마리 있는지 알아내려고 한다.

녹음한 소리는 문자열로 나타낸다. 문자 하나는 오리 한 마리가 낸 소리 하나이다. 한 오리가 낸 문자들이 녹음에서 연속할 필요는 없지만, 그 오리가 낸 문자만 순서대로 이어 붙이면 올바른 울음소리가 되어야 한다. 예를 들어 "quqacukqauackck"은 오리 두 마리가 운 소리로 볼 수 있다.

영선이가 녹음한 소리가 주어졌을 때, 영선이 방에 있을 수 있는 오리의 최소 마리 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 영선이가 녹음한 소리가 주어진다. 소리의 길이는 5 이상 2500 이하이고, 소리는 'q', 'u', 'a', 'c', 'k' 다섯 가지 문자로만 이루어져 있다.

출력

첫째 줄에 영선이 방에 있을 수 있는 오리의 최소 마리 수를 출력한다. 녹음한 소리를 오리들의 올바른 울음소리로 나눌 수 없으면 -1을 출력한다.

힌트

녹음이 "quqaquuacakcqckkuaquckqauckack"인 경우, 다음과 같이 오리 세 마리가 울었다고 볼 수 있다.

  녹음: quqaquuacakcqckkuaquckqauckack
오리 1: ____q_u__a___ck_______________
오리 2: __q__u_ac_k_q___ua__ckq_u__ack
오리 3: qu_a_______c___k__qu___a_ck___

예제6

  1. 예제 1

    입력
    quqacukqauackck
    
    예상 출력
    2
    
  2. 예제 2

    입력
    kcauq
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    quackquackquackquackquackquackquackquackquackquack
    
    예상 출력
    1
    
  4. 예제 4

    입력
    qqqqqqqqqquuuuuuuuuuaaaaaaaaaacccccccccckkkkkkkkkk
    
    예상 출력
    10
    
  5. 예제 5

    입력
    quqaquuacakcqckkuaquckqauckack
    
    예상 출력
    3
    
  6. 예제 6

    입력
    quackqauckquack
    
    예상 출력
    -1