동전 합치기

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

요약
같은 재료 동전 세 개가 연달아 나오면 하나로 합쳐 줄 뒤로 보내는 과정을 반복한 뒤 남는 동전 수를 구한다.
난이도

보통10점 중 7점

유형
시뮬레이션, 스택, 구현
정답자
아직 제출이 없습니다

문제

미사카는 동전을 레일건 탄환으로 쓴다. 범죄에 맞서려고 동전을 한 줄로 늘어놓았다. 더 강한 동전을 만들려면 동전을 합쳐야 하는데, 재질이 다른 동전끼리는 합쳐지지 않으므로 같은 재질끼리만 합친다.

동전을 만드는 순서는 다음과 같다.

  1. 줄의 앞에서부터 살펴보며 같은 재질의 동전이 세 개 연속으로 놓인 첫 자리를 찾는다.
  2. 그 세 개를 줄에서 빼낸다.
  3. 세 개를 합쳐 같은 재질의 새 동전 한 개를 만든다.
  4. 새 동전을 줄의 맨 뒤에 놓는다.

미사카는 새 동전을 더 만들 수 없을 때까지 이 순서를 반복한다.

반복이 끝났을 때 줄에 남은 동전의 개수를 구하라.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어진다.

각 테스트 케이스의 첫째 줄에는 연속한 동전 묶음의 개수 NN이 주어진다. 모든 동전은 한 줄로 놓여 있다.

이어지는 NN개의 줄에는 문자 cic_i와 정수 nin_i가 주어진다. ii번째 묶음은 재질이 cic_i인 동전 nin_i개가 연속으로 놓인 것이고, i−1i-1번째 묶음 바로 뒤에 있다.

  • 1≤T≤101 \le T \le 10
  • 1≤N≤1051 \le N \le 10^5
  • 1≤ni≤1091 \le n_i \le 10^9
  • cic_i는 알파벳 대문자이고, 1≤i<N1 \le i < N인 모든 ii에 대하여 ci≠ci+1c_i \ne c_{i+1}이다.

출력

각 테스트 케이스마다 새 동전을 더 만들 수 없을 때 줄에 남은 동전의 개수를 한 줄에 출력한다.

예제2

  1. 예제 1

    입력
    2
    3
    A 3
    B 1
    A 2
    3
    A 2
    B 3
    A 2
    
    예상 출력
    2
    3
    
  2. 예제 2

    입력
    4
    1
    A 1
    1
    A 2
    1
    A 3
    1
    Z 1
    
    예상 출력
    1
    2
    1
    1