[백준] PS/Java [실랜디]

[백준 1972] 놀라운 문자열 - JAVA

SH3542 2025. 3. 7. 18:18

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

 

해시 문제

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

class Main {

  public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringBuilder sb = new StringBuilder();
    String s;

    while (!(s = br.readLine()).equals("*")) {

      int S = s.length();

      if (S == 1) {
        sb.append(s).append(" is surprising.").append("\n");
        continue;
      }

      boolean f = false;
      for (int i = 1; i < S; i++) {
        Set<String> set = new HashSet<>();
        for (int j = 0; j + i < S; j++) {
          String sub = s.charAt(j) + "" + s.charAt(j + i);

          if (set.contains(sub)) {
            f = true;
            break;
          } else {
            set.add(sub);
          }
        }
        if (f) {
          break;
        }
      }

      if (f) {
        sb.append(s).append(" is NOT surprising.").append("\n");
      } else {
        sb.append(s).append(" is surprising.").append("\n");
      }
    }
    System.out.println(sb);
  }
}

'[백준] PS > Java [실랜디]' 카테고리의 다른 글

[백준 2238] 경매 - JAVA  (0) 2025.03.09
[백준 2134] 창고 이전 - JAVA  (0) 2025.03.09
[백준 2012] 등수 매기기 - JAVA  (1) 2025.03.07
[백준 1940] 주몽 - JAVA  (1) 2025.03.06
[백준 1935] 후위 표기식2 - JAVA  (0) 2025.03.06