풀이 57

백준 4948 c++ 풀이

안녕하세요 오늘은 에라토스테네스의 체를 이용한 소수 판정 문제를 풀어보겠습니다. 이 문제는 bool array를 이용하여 에라토스테네스의 체를 구현해주시면 어려움이 없습니다. 하단 코드를 참고하세요. #include #include using namespace std; vector v; bool era[246914]; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); for(int k = 0; k>x; if(x==0) break; v.push_back(x); v_size++; } for(int i = 2; i

BOJ 문제풀이 2021.07.31

백준 1904 c++ 풀이

안녕하세요 오늘은 다이나믹 프로그래밍을 이용한 문제를 풀어보겠습니다. 1 11 00 100, 111, 001, 1001, 1111, 0011, 0000, 1100 10011, 11111, 00111, 00001, 11001, 10000, 11100, 00100 f(n) = {f(n-1) + "1"} + {f(n-2) + "00"} 메모장에 끄적이면서 생각했습니다. f(n)의 경우는 f(n-1) 뒤에 "1"을 붙인 경우와, f(n-2) 뒤에 "00"을 붙인 경우를 합한것입니다. 따라서 개수는 f(n) = f(n-1) + f(n-2)입니다 이것을 구현하겠습니다 주의해야할 점: v.at(n)이 int의 범위를 넘어가지 않도록 v.at(i)을 설정해줄때부터 15746을 계속 나눈 나머지를 대입합니다. 코드: #..

BOJ 문제풀이 2021.07.30

백준 10870번 c++ 풀이

안녕하세요 오늘은 다이나믹 프로그래밍을 이용한 문제를 풀겠습니다. 피보나치 수열은 워낙 유명해서 다들 아시죠? F(n) = F(n-1) + F(n-2) 이 문제를 두가지 방법으로 풀었습니다 첫번째는 피보나치 함수를 만들어서 재귀로 호출해주는 방법입니다 코드는 다음과 같습니다. #include using namespace std; int fibonacci(int n){ if(n==0) return 0; if(n==1) return 1; return fibonacci(n-1) + fibonacci(n-2); } int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int a; cin>>a; coutn; n++; v.at(1) = 0; v.at(2) =..

BOJ 문제풀이 2021.07.30