※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 28292번 문제인 개미 수열이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/28292
28292번: 개미 수열
대구소프트웨어마이스터고등학교에 다니고 있는 changwook987은 베르나르 베르베르의 소설 『개미』를 읽다가 흥미로운 수열을 보았다. $1$, $11$, $12$, $1121$, $\dots$ 이 수열은 소설 『개미』에서 나
www.acmicpc.net
개미 수열을 이루는 n(>2)번째 문자열을 이용해 n+1번째 문자열을 만드는 과정을 생각해보자. 숫자 a가 n개 연속으로 등장하고 b가 m개 연속으로 등장한다는 의미로 anbm과 같이 문자열을 작성할 때, a와 b는 항상 다르다는 점을 관찰하자. 이 관찰을 이용하면 문제의 답은 3을 넘을 수 없음을 알 수 있다.
또한 이전 문자열에 등장한 숫자 k는 다음 문자열에도 "k가 (k의 개수)개"와 같은 형태로 항상 재등장한다는 점을 관찰하자.
위의 두 관찰과 개미 수열의 앞 몇 항을 이용해 문제를 해결하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int N;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
if (N < 3) cout << 1;
else if (N < 6) cout << 2;
else cout << 3;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 28293 // C++] 자릿수 (0) | 2023.11.06 |
---|---|
[BOJ 28291 // C++] 레드스톤 (0) | 2023.11.05 |
[BOJ 28290 // C++] 안밖? 밖안? 계단? 역계단? (0) | 2023.11.03 |
[BOJ 28289 // C++] 과 조사하기 (1) | 2023.11.02 |
[BOJ 10436 // C++] 무한 유리수 트리 (1) | 2023.11.01 |