일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- oauth
- pandas
- marksense.ai
- 양방향 매핑
- C++
- JPA
- Spring Boot
- google 로그인
- Spring
- google cloud
- html
- skt fellowship 3기
- 커스텀 데이터 학습
- Expo
- 졸프
- matplotlib
- 코드업
- STT
- 2021 제9회 문화공공데이터 활용경진대회
- yolo
- YOLOv5
- javascript
- google login
- react native
- OG tag
- Loss Function
- 순환참조
- @Transactional
- AWS
- idToken
Archives
- Today
- Total
민팽로그
[백준 / BOJ] 1904번: 01타일 본문
https://www.acmicpc.net/problem/1904
1904번: 01타일
지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이
www.acmicpc.net
코드
#include <cstdio>
int r[1000001] = { 0, 1, 2, };
int main() {
int n; //1 ≤ N ≤ 1,000,000
scanf("%d", &n);
for (int i = 3; i <= n; i++) {
r[i] = (r[i - 1] + r[i - 2]) % 15746;
}
printf("%d", r[n]);
return 0;
}
처음엔 재귀로 풀려고 했는데, long long 범위를 넘어갈 만큼 큰 값이 나오는 경우도 있어 15746으로 나눈 나머지를 저장해 주어야 한다. 피보나치 수열과 비슷한 규칙을 찾아내는데에 시간이 오래걸리지 않았다. 왠지 그냥 감....? 운이 좋았던건지 쉬운 문제인건지 모르겠다. 규칙이 찾기 힘든 문제도 풀 수 있어야하는데 많이 풀다보면 늘겠지 하하..
+ 처음에 재귀함수를 사용해서 풀려고 했는데 오버플로우가 생겨서 반복문으로 풀게 됐다. 졸려서그런건지 아무리봐도 같은코드같은데 왜 오버플로우가 생겼는지 이해가 안되는중... 내일 다시보기!!
#include <cstdio>
long long r[1000001];
long long f(int n) {
if (n == 1) return 1L;
if (n == 2) return 2L;
if (r[n] == 0) r[n] = (f(n - 1) + f(n - 2)) % 15746L;
return r[n];
}
int main() {
int n; //1 ≤ N ≤ 1,000,000
scanf("%d", &n);
printf("%lld", f(n));
return 0;
}
'PS > 백준📖' 카테고리의 다른 글
[백준 / BOJ] 1149번: RGB거리 (0) | 2021.12.06 |
---|---|
[백준 / BOJ] 9461번: 파도반 수열 (0) | 2021.12.04 |
[백준 / BOJ] 1003번: 피보나치 함수 (0) | 2021.12.02 |
[백준 / BOJ] 11729번: 하노이 탑 이동 순서 (0) | 2021.12.01 |
[백준 / BOJ] 2447번: 별 찍기 (0) | 2021.12.01 |
Comments