백준
-
백준 1003번: 피보나치 함수피보나치(Fibonacci) 2018. 7. 3. 09:53
https://www.acmicpc.net/problem/1003 1. 문제다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. 1234567891011int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); }}Colored by Color Scriptercs fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다.fibonacci(2)는 fibonacci(1) (두 번째 호출..
-
백준 13241번: 최소공배수정수론(Number theory) 2018. 7. 3. 09:49
https://www.acmicpc.net/problem/13241 1. 문제두 수의 최소 공배수를 찾는 문제 2. 알고리즘키워드 - 유클리드 호제법, GCD 3. 코드 123456789101112131415161718192021#include #include #include #include #include // greater 사용 위해 필요 #include #include #include using namespace std;long long int gcd(long long int a,long long int b) { return (a % b == 0 ? b : gcd(b,a%b));}int main() { long long int a, b; cin >> a >> b; long long int sol =..
-
백준 2606번: 바이러스깊이우선탐색(DFS) 2018. 7. 1. 20:46
https://www.acmicpc.net/problem/2606 1. 문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 2. 알고리즘 키워드 - DFS, BFS 참고 - 다음엔 BFS 로 풀어 봐야겠다. 3. 코드 #inc..
-
백준 2573번: 빙산깊이우선탐색(DFS) 2018. 7. 1. 20:06
https://www.acmicpc.net/problem/2573 DFS 응용 문제 탐색 되는 영역이 2 개가 되는 횟수를 출력 키워드 - DFS 참고 - 일년이 지나면 주변 경계값에 0 이 있는 개수 만큼 줄어 든다. DFS 코드 작성한 거보다 next 코드 작성 한게 더 힘들 었다. Source #include #include #include #include #include #include #include #include #include #include #include #include #include // vs 에서는 안필요 한대 BOJ 에서 필요함 using namespace std; #define MAX_SIZE 100 #define INF 0x7fffffff #define CENDL "\n" #..
-
백준 11568번: 민균이의 계략최장 증가 수열(Long Increasing Subsequence) 2018. 7. 1. 19:43
https://www.acmicpc.net/problem/11568 LIS 문제 키워드 - DP, LIS O(n^2) Source #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define MAX_SIZE 100 #define INF 0x7fffffff #define CENDL "\n" #define ll long long /* * @memory - 2380 kb * @time - 56 ms */ int arr[1001]; int dp[1001]; int main() { cin.tie(0); std::ios::sync_w..
-
백준 10986번: 나머지 합다이나믹프로그래밍(DP) 2018. 7. 1. 19:20
https://www.acmicpc.net/problem/10986 1. 문제수 N개 A1, A2, ..., AN이 주어진다. 이 때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) 쌍의 개수를 구해야 한다. 2. 알고리즘키워드 - DP, 부분합참고 - https://www.slideshare.net/Baekjoon/baekjoon-online-judge-10986 3. 코드 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include #include #..
-
백준 1019번: 책 페이지정수론(Number theory) 2018. 7. 1. 19:05
https://www.acmicpc.net/problem/1019 1. 문제지민이는 N쪽인 책이 한권 있다. 첫 페이지는 1쪽이고, 마지막 페이지는 N쪽이다. 각 숫자가 모두 몇 번이 나오는지 출력하는 프로그램을 작성하시오. 2. 알고리즘키워드 - 정수론참고 - https://www.slideshare.net/Baekjoon/baekjoon-online-judge-1019 3. 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include #include #include #include #include ..
-
백준 1920번: 수 찾기이분 탐색(Binary Search) 2018. 6. 30. 16:30
https://www.acmicpc.net/problem/1920 1. 문제N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 2. 알고리즘키워드 - 정렬, 이분탐색 3. 코드 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include #include #include #include #include #include #include #include #include #include #include #include using na..