본문 바로가기

OJ

[BOJ] 1972 놀라운 문자열 (JAVA)

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

 

1972번: 놀라운 문자열

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

www.acmicpc.net

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.StringTokenizer;

public class Main {
	
    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        while (true) {
            String line = br.readLine();
            if ("*".equals(line)) break;

            int len = line.length();
            boolean flag = true;

            for (int i = 1; i < len; i++) {
                HashSet<String> set = new HashSet<>();

                for (int j = 0; j < len - i; j++) {
                    String s = "" + line.charAt(j) + line.charAt(j + i);
                    set.add(s);
                }

                if (set.size() != len - i) {
                    flag = false;
                    break;
                }
            }

            if (flag) sb.append(line).append(" is surprising.\n");
            else sb.append(line).append(" is NOT surprising.\n");
        }

        System.out.print(sb);

    }
	
}