A. Do Not Be Distracted! | #719 Div.3

LONGNEW·2021년 7월 11일
0

CP

목록 보기
29/155

https://codeforces.com/contest/1520/problem/A
시간 1초, 메모리 256MB

input :

  • t (1 ≤ t ≤ 1000)
  • n (1 ≤ n ≤ 50)

output :

  • For each test case output:

"YES", if the teacher cannot be suspicious;
"NO", otherwise.
각 테스트 케이스에서 선생이 의심스러워 할 경우엔 "YES"를 그렇지 않으면 "NO"를 출력하시오.

조건 :

  • The teacher asked Polycarp to solve tasks in the following way: if Polycarp began to solve some task, then he must solve it to the end, without being distracted by another task. After switching to another task, Polycarp cannot return to the previous task.
    선생은 Polycarp에게 문제를 해결 할 때 아래와 같은 순서를 따르라고 햇다. 하나의 문제를 풀려고 시작했으면 중간에 다른걸로 넘어가지 말고 하던 거를 다 끝내라. 다른 문제로 넘어갈 경우 다시 돌아올 수 없다.

  • Now the teacher wants to know if Polycarp followed his advice.
    인제 선생이 Polycarp이 본인의 충고를 따랐는지 확인하려 한다.


그러니까 이미 시작한 과제를 다시 시작하는 경우가 있는지 확인 하자.
그 경우에만 선생의 조언을 따르지 않은 것이다.
그냥 배열 자체를 줄인 다음에 체크 하는게 제일 편하지 않나 싶다.

import sys

t = int(sys.stdin.readline())
for i in range(t):
    n = int(sys.stdin.readline())
    data = sys.stdin.readline().rstrip()
    temp = [data[0]]
    visit = [0] * 26
    flag = 0

    now = data[0]
    for item in data:
        if now != item:
            now = item
            temp.append(now)

    for item in temp:
        visit[ord(item) - 65] += 1

    for item in visit:
        if item > 1:
            print("NO")
            flag = 1
            break

    if not flag:
        print("YES")

0개의 댓글