백준 algorithm
-
백준 1003 - 피보나치 함수백준 algorithm 2020. 1. 20. 17:50
fibonacci는 재귀로 풀어야한다는 것을 알아야한다. //0 : fibonacci(n-1) //1 : fibonacci(n) //fibonacci : fibonacci(n-1) + fibonacci(n-2) 0과 1의 개수는 위와 같은 식을 따른다. 위의 식을 따라 알고리즘을 짜면 간단히 해결가능하다. *testcase를 배열로 주고서 풀 경우 문제가 생길 수 있다. testcase를 숫자로 받고서, 해당 값을 줄이면서 입력을 받으면서 푸는 것이 맞는 방법이다. #include using namespace std; //0 : fibonacci(n-1) //1 : fibonacci(n) //fibonacci : fibonacci(n-1) + fibonacci(n-2) int fibo[41]; int f..
-
백준 2908 상수백준 algorithm 2020. 1. 8. 23:20
#include using namespace std; int reverse(int n) { int a, b, c, val; a = n % 10; n /= 10; b = n % 10; n /= 10; c = n % 10; val = a * 100 + b * 10 + c; return val; } int main() { int num, num2; int re_num, re_num2; cin >> num >> num2; re_num = reverse(num); re_num2 = reverse(num2); if (re_num > re_num2)cout
-
백준 1546 - 평균백준 algorithm 2019. 12. 31. 11:10
배열을 1000개짜리를 만들지 않으면 런타임 에러가 나온다. vector를 사용해서도 할 수 있을 것이다. #include using namespace std; int main() { int N; cin >> N;//number of input double arr[1000];//array to save values int max = 0;//maximum varaiable double avg = 0; //average variable for (int i = 0; i > tmp; if (tmp > max)max = tmp; arr[i] = tmp; } for (int i = 0; i < N; i++) { arr[i] = arr[i] / max * 100; a..
-
백준 - 8958 OX퀴즈백준 algorithm 2019. 12. 27. 12:29
입력을 받으면서 OX라는 벡터에 결과값을 계산해서 집어넣은 후 마지막에 출력하는 방식으로 하였다. O가 연소갷서 나올경우 더하는 값을 증가하며 sum을 증가시키고, X가 나올경우 tmp2를 초기화 시킨다. #include #include #include using namespace std; int main() { int N; cin >> N; vector OX;//vector to save value for (int i = 0; i > tmp; int sum = 0; int tmp2=0; for (int i = 0; i < tmp.length(); i++) { if (tmp[i] == 'O') { tmp2++; sum += tmp2; } else { /..
-
백준 - 11022 A+B -8백준 algorithm 2019. 12. 27. 12:01
배열을 동적생성하여도 되고 vector STL을 사용하여도 상관없다. 본인은 후자의 방법을 사용해서 풀었다. #include #include using namespace std; int main() { int N; cin >> N; vector arr_1, arr_2; for (int i = 0; i > tmp >> tmp2; arr_1.push_back(tmp); arr_2.push_back(tmp2); } for (int i = 0; i < N; i++) { cout
-
백준 2884 -알람시계백준 algorithm 2019. 12. 27. 11:00
빼려는 시간이 정해져있기 때문에 간단하다. 0시 0분일때의 경우를 계산해야한다. #include using namespace std; void Calc(int* H, int* M) { if (*M >= 45) { *M = *M - 45; return; } else { int tmp = 45 - *M; *M = 60 - tmp; if (*H != 0) { *H -= 1; } else { *H = 23; } return; } } int H, M; int main() { cin >> H >> M; Calc(&H, &M); cout