문제 내용은 입력으로 문자열에서 찾을 값을 받고, 이후 횟수와 문자열을 받아주는데 문자열은 시작과 끝이 연결되어 있는 형태이기 때문에, 연결한 뒤, 입력받은 문자열을 찾아서 있으면 +1을 한 뒤 갯수를 반환해주면 되는 식인데
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String findStr = br.readLine();
int count = Integer.parseInt(br.readLine());
int ans = 0;
for (int i = 0; i < count; i++) {
String s = br.readLine();
s += s;
if (s.contains(findStr)) {
ans++;
}
}
System.out.println(ans);
}
}
문제를 풀어보자면 결국 시작과 끝이 연결되었다는 내용은 문자열 뒤에 동일한 문자열을 한번 더 합쳐주면 끝이기 때문에, 입력받은 횟수만큼 반복문을 돌리면서 입력받은 문자열 뒤에 동일한 문자열을 한번 더 더해보고 contains 메소드를 사용해서 특정 문자열이 있는지 확인하고 있으면 횟수를 더해준 뒤 반복문이 끝나고 나면 총 횟수를 출력해주면 끝이다
Leave a Reply