알고리즘
[BOJ] 2748/2750
haesa_s
2021. 2. 1. 15:06
#2748: 피보나치 수 2
[문제]
[코드]
#include<stdio.h>
int main() {
long long f1 = 0, f2 = 1, fn;
int n;
do{
scanf("%d", &n);
} while (n > 90);
if(n < 2)
printf("%d\n", n);
else {
for (int i = 2; i <= n; i++) {
fn = f1 + f2;
f1 = f2;
f2 = fn;
}
printf("%lld\n", fn);
}
return 0;
}
[코드설명]
for문을 사용해서 피보나치 수를 구한 것이다. 이 코드를 처음 채점했을 때 해결하지 못 했는데 알고보니 90번째 피보나치 수까지 가다보면 숫자를 int로 표현하는데 한계가 있다는 것을 알아냈다. 그래서 자료형을 long long으로 바꾼 후 재채점했더니 해결할 수 있었다.
[채점 결과]
#2750: 수 정렬하기
[문제]
[코드]
#include<stdio.h>
int main()
{
int sort[1000], n;
int min;
scanf("%d", &n);
for (int i = 0; i < n; i++)
scanf(" %d", &sort[i]);
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
if (sort[i] > sort[j])
{
min = sort[j];
sort[j] = sort[i];
sort[i] = min;
}
}
for (int i = 0; i < n; i++)
printf("%d\n", sort[i]);
return 0;
}
[코드설명]
정렬 알고리즘으로 해결할 수 있는 문제다. 나는 여러 정렬 알고리즘 중 선택 정렬을 이용해서 해결했다. 정렬하고 싶은 위치를 정해놓고 다른 원소들과 비교하여 앞에서부터 정렬해나가는 방식으로 풀었다.
[채점 결과]