https://www.acmicpc.net/problem/1544
1544번: 사이클 단어
사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashSet;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
HashSet<String> set = new HashSet<>();
int cnt = 0;
for (int i = 0; i < N; i++) {
int pre = set.size();
char[] input = br.readLine().toCharArray();
int len = input.length;
for (int j = 0; j < len; j++) {
StringBuilder sb = new StringBuilder();
for (int k = 0; k < len; k++) {
sb.append(input[(j + k) % len]);
}
if (set.contains(sb.toString())) break;
set.add(sb.toString());
}
if (pre < set.size()) cnt++;
}
System.out.print(cnt);
}
}
'OJ' 카테고리의 다른 글
[BOJ] 9996 한국이 그리울 땐 서버에 접속하지 (JAVA) (0) | 2023.06.30 |
---|---|
[BOJ] 16948 데스 나이트 (JAVA) (0) | 2023.06.29 |
[BOJ] 1972 놀라운 문자열 (JAVA) (0) | 2023.06.27 |
[BOJ] 16499 동일한 단어 그룹화하기 (JAVA) (0) | 2023.06.26 |
[BOJ] 28014 첨탑 밀어서 부수기 (JAVA) (0) | 2023.06.25 |