728x90
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
학습
문제 자체는 쉬운 편이였으나 좋은 알고리즘이란 무엇인가에 대해 고찰해본 후 나는 문제를 푸는 것만이 다가 아니라는 것을 새롭게 알게되었다. 이번과 같은 문제도 여러가지 방법으로 풀 수 있을텐데, 예를들면 내가 작성한 코드 외에도 입력받고 sum으로 더하는 부분을 함수로 작성하는 등이 있다.
조금 쉬운 문제는 여러 방법으로 고안하여 백준(BOJ) 숏코딩 랭커가 될 수 있도록 한번 생각해보아야겠다.
이 문제의 숏코딩 랭커 코드길이는 48B~55B정도 된다. 필자도 코드를 최대한 줄여보려고 했으나 138B가 최대였다..(랭킹으로 따지자면 350등 정도다) 아직 한참 부족하다고 느꼈다. 무튼! 코드를 제출했다고 문제를 푼 것이 아니라 좋은 알고리즘에 도달하려면 어떻게 해야하는지 다양하게 접근해보고자 했던게 좋은 시도였던 것 같다.
코드
#include <stdio.h>
int main()
{
int N;
int sum = 1;
scanf("%d", &N);
for (int i = 1; i <= N; i++)
{
sum *= i;
}
printf("%d", sum);
return 0;
}
출처
728x90
'프로그래밍 > C, C++' 카테고리의 다른 글
[C] 백준 9012 괄호 (0) | 2021.03.31 |
---|---|
[C] 백준 10870 피보나치 (0) | 2021.03.22 |
[C] 백준 10773 제로 (0) | 2021.03.21 |
[C] 백준 10828 스택 (strcmp, strncmp) - 문자열 비교] 백준 10828 스택 (strcmp, strncmp) - 문자열 (0) | 2021.03.18 |
[C] 백준 1002 터렛 ✈️ (0) | 2021.03.16 |