본문 바로가기

전체 글721

[백준 10870] 피보나치 수 5 [C] 풀이 "백준 2747, 피보나치 수"와 동일한 방법으로 풀이할 수 있다. 소스코드 #include int fibo(int n){ int fiboNum[2] = {0, 1}; for (int i = 1 ; i < n; i++) fiboNum[(i+1)%2] = fiboNum[i%2] + fiboNum[(i-1)%2]; return fiboNum[n%2]; } int main(){ int n; scanf("%d", &n); printf("%d", fibo(n)); } 출처 및 참고자료 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1.. 2021. 7. 31.
[백준 2748] 피보나치 수 2 [C] 풀이 "백준 2747, 피보나치 수"에서 사용한 Dynamic Programming 풀이방식을 재사용해 시간초과는 발생하지 않지만, 수가 너무 커서 long long 형을 사용해주어야 한다. 소스코드 #include long long fibo(int n){ long long fiboNum[2] = {0, 1}; for (int i = 1 ; i < n; i++) fiboNum[(i+1)%2] = fiboNum[i%2] + fiboNum[(i-1)%2]; return fiboNum[n%2]; } int main(){ int n; scanf("%d", &n); printf("%lld", fibo(n)); } 출처 및 참고자료 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수.. 2021. 7. 31.
[백준 2747] 피보나치 수 [C] 풀이 Dynamic Programming 방식으로 풀이했다. 소스코드 #include int fibo(int n){ int fiboNum[2] = {0, 1}; for (int i = 1 ; i < n; i++) fiboNum[(i+1)%2] = fiboNum[i%2] + fiboNum[(i-1)%2]; return fiboNum[n%2]; } int main(){ int n; scanf("%d", &n); printf("%d", fibo(n)); } 출처 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 .. 2021. 7. 31.
[백준 18111] 마인크래프트 [C] 풀이 256 ~ 0까지 모든 높이의 평지를 만들어보며 최단 시간을 구하는 문제이다. 동일한 층의 개수를 배열로 입력받았고, 가장 높은 층을 구했다. 최단시간이 동일하다면, 높이가 가장 높은 것을 출력해야 하기 때문에 256부터 0으로 내려가면서 탐색했다. (만약 시간이 동일하다면 높은 층의 기록이 유지되므로) 최대 시간(result)은 다음과 같다. 땅의 크기(500 x 500) x 설치(2) x 최대높이(256) = 128,000,000 소스코드 #include int main(){ int N, M, B, arr[257] = {0, }, temp, max = 0; scanf("%d %d %d", &N, &M, &B); for (int i = 0; i < N*M; i++){ scanf("%d", &tem.. 2021. 7. 31.
[백준 10773] 제로 [C] 풀이 0을 입력받으면 pop, 아니면 push이다. 연산 효율을 위해 일단 입력받고 0이면 top를 -2만큼 감소시켰다. 소스코드 #include int main(){ int K; scanf("%d", &K); int stack[K], top = -1, sum = 0; for (int i = 0; i < K; i++){ scanf("%d", &stack[++top]); if (!stack[top]) top -= 2; } for (int i = 0; i 2021. 7. 31.
[백준 10992] 별 찍기 - 17 [C] 풀이 "백준 10990, 별 찍기 - 15"문제에 i == N - 1 일때 별만 찍는 조건만 추가해주면 된다. 소스코드 #include int main(){ int N; scanf("%d", &N); for (int i = 0; i < N; i++){ for (int j = 1; j 2021. 7. 31.