백준
-
백준 14920번: 3n1+1 수열구현(Implementation) 2018. 7. 3. 10:50
https://www.acmicpc.net/problem/14920 1. 문제 다음의 점화식에 의해 정해지는 수열 C(n)을 생각하자: 123 C(n+1) = C(n)/2 (C(n)이 짝수일 때) = 3*C(n)+1 (C(n)이 홀수일 때)cs 초항 C(1)이 자연수로 주어지면, 이 점화식은 자연수로 이루어지는 수열을 정한다. 예를 들어, C(1)=26이면, 다음의 수열이 된다.26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2, 1, 4, 2, 1, ...이 경우, 수열의 뒷부분은 4, 2, 1 이 끝없이 반복된다. 실제로 C(1)이 5×260보다 작은 자연수인 모든 수열은 언젠가는 4, 2, 1로 끝나게 된다는 것이 알려져 있다.주어진 입력 C(1)에 대하여 C(n)이 처음..
-
백준 10989번: 수 정렬하기 3정렬(Sort) 2018. 7. 3. 10:26
https://www.acmicpc.net/problem/10989 1. 문제N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 2. 알고리즘키워드 - 정렬메모리 제약사항이 8MB 이고 들어오는 입력으로 들어오는 숫자가 10000000 개 임으로 일반적인 sort 함수를 사용해서는 풀 수 없다.입력으로 들어오는 숫자의 상한 값이 10000 이상 입력되지 않기 때문에 모든 수를 메모리에 적제할 필요는 없다. 10000 * 4 = 4만 바이트에 용량으로 처리가 가능하다. 3. 코드 1234567891011121314151617181920212223242526272829#include #include // min#include #include #include #include typed..
-
백준 2902번: KMP는 왜 KMP일까?문자열(String) 2018. 7. 3. 10:22
https://www.acmicpc.net/problem/2902 1. 문제대문자 출력 하는 문제 2. 알고리즘키워드 - 구현, 문자열O(n) 3. 코드 12345678910111213141516171819202122#include #include // min#include #include #include using namespace std; int main() { string word; cin >> word; const int size = word.size(); for (int i = 0; i = 'A' && ch
-
백준 2675번: 문자열 반복문자열(String) 2018. 7. 3. 10:19
https://www.acmicpc.net/problem/2675 1. 문제문자열의 길이 만큼 하나의 단어를 출력 하는 문제. 2. 알고리즘키워드 - 구현 처음 알고리즘을 시작 할때는 부르트포스 문제로 생각 했는데 지금 와서 보니 단순 구현 문제다. 3. 코드 12345678910111213141516171819202122232425262728#include #include // min#include #include #include using namespace std; int main() { int n; cin >> n; for (int i = 0; i > cand >> word; int size = word.size(); for (int j = 0; j
-
백준 1546번: 평균구현(Implementation) 2018. 7. 3. 10:17
https://www.acmicpc.net/problem/1546 1. 문제입력 받은 수에서 평균을 구하는 문제 2. 알고리즘키워드 - 구현, 수학 3. 코드 12345678910111213141516171819202122232425262728293031323334353637#include #include #include #include #include // greater 사용 위해 필요 #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); // scanf 안쓸 경우 쓰세요. Cin 사용시 int N; cin >> N; vector arr(N); int maxValue = 0; for (int i=0; i> ..
-
백준 2748번: 피보나치 수2피보나치(Fibonacci) 2018. 7. 3. 10:15
https://www.acmicpc.net/problem/2748 메모리 제약 사항이 128 MB 임으로 메모제이션이나 다이나믹프로그래밍으로 접근 해야 한다. 키워드 - 정수론, 피보나치, 다이나믹 프로그래밍 1 2 3 5 8 13 21 이전 요소의 값을 계속 더해 준다 Source #include #include #include #include #include // greater 사용 위해 필요 #include using namespace std; // 자료형 범위 명심 long long dp[91] = {0, }; int main() { ios::sync_with_stdio(false); cin.tie(0); // scanf 안쓸 경우 쓰세요. Cin 사용시 dp[1] = 1; dp[2] = 1; f..
-
백준 1850번: 최대공약수정수론(Number theory) 2018. 7. 3. 10:03
https://www.acmicpc.net/problem/1850 1. 문제모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이 때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오.예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A가 111이고, B가 111111인 경우에는 최대공약수가 111이다. 2. 알고리즘키워드 - 정수론, 유클리드 호제법문제 이해를 잘 해야 한다. 공약수만큼 1을 출력 하는 문제다. 3. 코드 1234567891011121314151617181920212223#include #include // min#include #include #include using namespace std; typedef unsigned lon..
-
백준 1065번: 한수정수론(Number theory) 2018. 7. 3. 09:57
https://www.acmicpc.net/problem/1065 1. 문제어떤 양의 정수 X의 자리수가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 2. 알고리즘키워드 - 수학, 구현 문제를 접근 하기 위해서는 먼저 등차 수열이 무엇인지를 이해 해야 한다. 수학에서, 등차수열(等差數列, 문화어: 같은차수렬, 영어: arithmetic sequence)은 연속하는 두 항의 차이가 모두 일정한 수열을 뜻한다. 예를 들어 1, 3, 5, 7, 9, ...은 등차수열이다. 이때 두 항의 차이는 이 수열의 모든 연속하는 두 항들에 대해서 공통..