회전하는 별 무늬의 주기
의견: 0
전광판(marquee)이 별과 우주를 그린 배너 문자열을 한 글자씩 왼쪽으로 밀며 흘려보낸다. 매 프레임마다 배너는 왼쪽으로 정확히 한 칸 회전한다. 즉, 맨 앞 글자가 맨 뒤로 이동한다.
예를 들어 배너가 "..*." 라면
-
1프레임 후: "...*"
-
2프레임 후: "..*."
와 같이 되어, 2프레임 만에 다시 처음과 똑같은 모습이 된다.
배너 문자열 \(S\) 가 주어질 때, 몇 프레임이 지나야 배너가 다시 처음과 완전히 똑같은 모습이 되는지, 그 가장 작은 프레임 수를 출력하라. \(S\) 의 길이를 \(n\) 이라 하면 \(n\) 프레임이 지나면 반드시 원래대로 돌아오므로 답은 항상 \(1\) 이상 \(n\) 이하이다.
\(1 \le n \le 100{,}000\)
\(S\) 는 공백 없이 출력 가능한 ASCII 문자(코드 \(33\)~\(126\))로만 이루어진다.
첫째 줄에 배너의 길이 \(n\) (\(1 \le n \le 100{,}000\)) 이 주어진다.
둘째 줄에 길이 \(n\) 의 배너 문자열 \(S\) 가 주어진다. \(S\) 는 공백을 포함하지 않는, 출력 가능한 ASCII 문자(아스키 코드 33 이상 126 이하)들로 이루어진다.
배너가 다시 처음과 똑같은 모습이 되기까지 필요한 가장 작은 프레임 수를 한 줄에 출력한다.
6
*.*.*.
2
배너 "..."를 왼쪽으로 한 칸씩 돌리면
1프레임 후: "..." (다름)
2프레임 후: "..*." (처음과 같음!)
따라서 정답은 2이다.
5
star_
5
배너 "star_"는 어떤 5보다 작은 횟수로 돌려도 처음 모습이 되지 않는다. 5번 돌리면 원래대로 돌아오므로 정답은 5이다.
12
<-=><-=><-=>
4
"<-=><-=><-=>"는 길이 4짜리 "<-=>"가 3번 반복된 무늬이므로 4프레임마다 처음 모습으로 돌아온다.
riseoj 작성
출처 Original
평가 및 의견
회전하는 별 무늬의 주기
아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.
풀이 제출
회전하는 별 무늬의 주기