-
[BOJ] 10870 : 피보나치 수 5
10870 : 피보나치 수 5 풀이 엠티 가즈아~ 코드 #include <stdio.h> int n, a, b = 1; int main() { scanf("%d", &n); while (n--) { b += a; a = b - a; } printf("%d", a); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이
-
[BOJ] 11727 : 2xn 타일링 2
11727 : 2xn 타일링 2 풀이 끄으 코드 main() { int n, a = 0, b = 1, i; scanf("%d", &n); for (i = 0; i < n; ++i) { b += a * 2; a = b - a * 2; b %= 10007; } printf("%d", b); } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이
-
[BOJ] 11726 : 2xn 타일링
11726 : 2xn 타일링 풀이 쓰기 귀찮다 다른 블로그에 그림이 포함된 친절한 풀이가 많으니 다른 블로그를 참고 해주시면 감사하겠습니다. 코드 #include <stdio.h> int n, dp[1010]; int main() { dp[0] = dp[1] = 1; scanf("%d", &n); for (int i = 2; i <= n; i++) dp[i] = (dp[i - 1] + dp[i - 2]) % 10007; printf("%d", dp[n] % 10007); return 0; } main(n,a,b) { scanf("%d",&n); a=b=1; while(n--) { b+=a; a=b-a; b%=10007; } printf("%d",a); } 아무말...
-
[BOJ] 1188 : 음식 평론가
1188 : 음식 평론가 풀이 n과 m의 최대공약수를 이용해 문제에 접근해보자. n과 m이 서로소인 경우, 서로소가 아닌 경우로 나눌 수 있다. g = gcd(n, m)이라고 하자. f(n, m)을 n과 m에 대한 답을 구하는 함수라고 하자. f(n, m) = f(n/g, m/g) * g임은 자명하게 알 수 있다. 그러므로 g != 1인 경우의 답은 g = 1인 경우의 답을 알면 구할 수 있고 우린 모든 경우에 대해 답을 구할 수 있게 된다. 어떤 a, b에 대해서 gcd(a,...
-
[BOJ] 1145 : 적어도 대부분의 배수
1145 : 적어도 대부분의 배수 풀이 조아~ 코드 #include <stdio.h> int i,j,c,a[5]; int main() { for (i=0;i<5;i++)scanf("%d",&a[i]); for (i=1;;i++){ for(j=0,c=0;j<5;j++)if(i%a[j]==0)c++; if(c>=3)return ~printf("%d",i); } return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이
-
[BOJ] 1120 : 문자열
1120 : 문자열 풀이 그리디하게 풀어보자. a의 길이가 b보다 짧으므로 a[i] != b[j]의 개수가 가장 짧은 구간을 택하면 아무 문자나 양옆으로 붙일 수 있으므로 최소의 a[i] != b[j] 합이 답이 된다. 코드 #include <cstdio> #include <cstring> char a[55], b[55]; int alen, blen, sum, min = 1e9, i, j; int main() { scanf("%s %s", a, b); alen = strlen(a); for (; b[i + alen - 1]; i++, sum = 0) { for (j = 0; a[j];...
-
[BOJ] 1075 : 나누기
1075 : 나누기 풀이 저 푸른 초원 위에 그림 같은 집을 짓고 코드 #include <stdio.h> int a, b, i; int main() { scanf("%d %d", &a, &b); a /= 100; a *= 100; for (; i <= 100; i++) if ((a + i) % b == 0) return ~printf("%02d", (a + i) % 100); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제,...
-
[BOJ] 1015 : 수열 정렬
1015 : 수열 정렬 풀이 졸리다 코드 #include <stdio.h> #include <algorithm> using namespace std; int n, i, b[55]; pair<int, int> a[55]; int main() { scanf("%d", &n); while (i < n) scanf("%d", &a[i].first), a[i].second = i, i++; sort(a, a + n); while (i--) b[a[i].second] = i; i++; while (i < n) printf("%d ", b[i++]); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제,...
-
[BOJ] 1806 : 부분합
1806 : 부분합 풀이 종강 언제지 코드 #include <stdio.h> #include <algorithm> int n, m, r = 1e9, a[100001]; int main() { scanf("%d %d", &n, &m); for (int i = 1, j = 0; i <= n; i++) { scanf("%d", &a[i]); a[i] += a[i - 1]; for (; a[i] - a[j] >= m; j++) r = std::min(r, i - j); } printf("%d", r == 1e9 ? 0 : r); return 0; } 아무말 백준, 백준 온라인...
-
[BOJ] 2003 : 수들의 합 2
2003 : 수들의 합 2 풀이 투포인터 조아!! 분할정복도 조아!! 코드 #include <stdio.h> int n, m, k, s, a[10001]; int main() { scanf("%d %d", &n, &m); for (int i = 0, j = 0; i < n; i++) { scanf("%d", &a[i]); s += a[i]; while (s > m) s -= a[j++]; k += (s == m); } printf("%d", k); return 0; } #include <cstdio> #include <algorithm> using namespace std; int n, k, a[10001], sum[10001]; int...