전체 글
-
백준 1037 - 약수백준 algorithm 2019. 9. 2. 09:43
숫자들의 약수를 구해보면 약수들중 가장 작은수와 가장큰 수를 곱하면 원하는 값을 구할 수 있다. ex) 12: ( 2 3 4 6 ) => 2 *6 =12 위와 같은 방법으로 알고리즘을 짜면 쉽게 구할 수 있는 문제이다. 본인은 배열을 만들어 약수들을 배열안에 넣어 계산하는 방식으로 코드를 짰다. 개선해야할 점 : 처음에는 예시 값을 넣어도 값이 잘 나와 제대로 푼줄 알았지만, 알고보니 약수들이 정렬된 상태로 입력된다는 말이 없었다. 그러므로 sort함수를 써서 배열을 정렬해준 다음, 코드를 적용했어야 했다. 좀더 집중력있게 생각해야한다. sort 사용 예제 : https://blockdmask.tistory.com/178 [C++] sort algorithm 정리 및 예시 안녕하세요 BlockDMask ..
-
백준 1065 - 한수백준 algorithm 2019. 9. 2. 00:56
아침에 일어나자마자 풀어본 문제이다. 친구는 쉽게 푼 문제이지만 나에겐 시간이 필요했다. 우선 등차 수열에 대한 개념을 정확히 하고 가야 했다. 등차수열 : 연속하는 두 항의 차이가 모두 일정한 수열을 뜻한다. 수열 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 수학에서, 수열(數列) 또는 열(列, sequence)은 수 또는 다른 대상의 순서있는 나열이다.[1] 나열 순서를 생각해야 하고 중복이 허용된다는 점에서 집합과 구분된다. 양의 홀수의 크기 순 나열 1, 3, 5, 7, ...은 수열의 예이다. 수열은 자연수의 집합에 정의된 함수라고 할 수 있다. 수열의 항[편집] 수열을 이루는 구성원을 수열의 항(term) 또는 원소(element)라고 한다. 수열은 항의 유형에 따라 ..
-
백준 11727 - 2×n 타일링 2백준 algorithm 2019. 8. 31. 17:58
처음 풀어보는 문제라 많이 버벅거렸다. 30분이상 생각하다가 답이 안나와 구글링하여 답을 보고 내 방식대로 짜봤다. 참고로 vector로 풀어서 좋을건 하나도 없을 거 같다. 배열로만 풀어도 되는 문제다. answer[i] = answer[i-1] + (answer[i-2]*2) 의 식만 적용하면 풀수 있는 간단한 문제다. 알고리즘 문제를 풀때는 항상 종이와 펜이 필수다. #include #include using namespace std; int method(int n) { vector answer; answer.push_back(0); answer.push_back(1); answer.push_back(3); if (n == 1) { return answer[1]; } else if (n == 2) ..
-
백준 9095번 -1,2,3더하기백준 algorithm 2019. 8. 29. 21:27
오랜만에 푸는 백준 문제라 푸는데 시간이 걸렸다. 점화식 하나만 세우면 쉬는 문제이다. f(n)=f(n-1)+f(n-2)+f(n-3) 위의 식을 사용하면 1,2,3을 이용해 더하는 가지의 수를 더할 수 있다. 본인은 기본적으로 벡터를 사용하여 1,2,3을 이용하여 1을 만들 수 있는 가지의 수 = 1 1,2,3을 이용하여 2을 만들 수 있는 가지의 수 = 2 1,2,3을 이용하여 3을 만들 수 있는 가지의 수 = 4 를 벡터에 두고서 제한값이 11까지의 값을 계산하였다. #include #include using namespace std; int main() { int n;//반복할 횟수 변수 cin >> n; vector v(12); vector num; v[1] = 1; v[2] = 2; v[3] =..