본문 바로가기
백준 코딩테스트/실버

1904) 01타일 (C++)

by xortl98 2022. 4. 19.
728x90

 출처 

https://www.acmicpc.net/problem/1904

 

1904번: 01타일

지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이

www.acmicpc.net

 내 풀이 

#include<iostream>

using namespace std;

int Tile[1000001];
int N = 0;

int main()
{
	Tile[1] = 1;
	Tile[2] = 2;


	//Tile의 size만큼 for문 반복
	for (int i = 3; i < size(Tile); i++)
	{
		Tile[i] = (Tile[i - 2] + Tile[i - 1]) % 15746;
	}
	cin >> N;

	cout << Tile[N];
}

 해설

N = 1 -> 1

N = 2 -> 11 00

N = 3 -> 100 000 001 

 

피보나치 함수처럼 N = N-1 + N-2 공식이 성립된다는걸 찾고 그대로 풀어보았다.

 

 새로 안 것 

size()에 대해 알았고 문제가 계속 틀려서 뭐가 문제인지 보니 for문 안에 %15746을 안해줘서 틀렸었다. 문제를 꼼꼼히 읽어야겠다.

 

 

'백준 코딩테스트 > 실버' 카테고리의 다른 글

11047) 동전 0 (C++)  (0) 2022.04.20
9461) 파도반 수열 (C++)  (0) 2022.04.20
2667) 단지번호붙이기 (C++)  (0) 2022.04.19
9184) 신나는 함수 실행 (C++)  (0) 2022.04.18
1003) 피보나치 함수 (C++)  (0) 2022.04.17