[Python] 알고리즘/Silver

[1972] 놀라운 문자열 (Python)

-Becca- 2021. 12. 23. 16:05

[문제]

https://www.acmicpc.net/problem/1972

 

1972번: 놀라운 문자열

대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문

www.acmicpc.net


알고리즘 분류는 구현, 자료 구조, 문자열, 해시를 사용한 집합과 맵 입니다.

D-쌍들이 서로 다른 것을 판단할 때, dictionary를 사용하였습니다.


[코드]

import sys

while True:
    st = sys.stdin.readline().rstrip()
    if st == "*":
        break

    res = 0
    for i in range(len(st) - 1):
        dt = dict()
        for j in range(i + 1, len(st)):
            dt[st[j - i - 1] + st[j]] = dt.get(st[j - i - 1] + st[j], 0) + 1
            if dt[st[j - i - 1] + st[j]] > 1:
                res = 1

    if res == 0:
        print(st + " is surprising.")
    else:
        print(st + " is NOT surprising.")