[백준] 8393번 합 C / C++ 문제 풀이 for문
2019. 7. 5. 08:49ㆍ알고리즘/백준
728x90
반응형
문제
n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 n (1 ≤ n ≤ 10,000)이 주어진다.
출력
1부터 n까지 합을 출력한다.
예제 입력 1
3
예제 출력 1
6
문제 풀이
#include<stdio.h>
int main(){
int n;
scanf("%d", &n);
printf("%d", n*(n+1)/2);
}
간단한 알고리즘 중에 시간 복잡도를 설명할 때 많이 사용되는 문제입니다.
원래 같으면 for문을 사용하여
#include<stdio.h>
int main(){
int n, sum;
scanf("%d", &n);
for(int i = 1; i < n+1; i++){
sum += i;
}
printf("%d", sum);
}
이렇게 구현을 했어야 하는데 처음 코드의 시간복잡도는 O(1)이기 때문에
n에 어떠한 값을 넣어도 알고리즘의 계산시간이 변하지 않지만,
밑의 for문은 같은 결과를 내더라도 n에 값에 따라 연산 시간이 더 오래걸릴 수 있습니다.
for문을 사용하라는 문제였지만 위의 코드가 더 좋은 코드라 판단하여 먼저 보여드려봤습니다.
출처 : https://www.acmicpc.net/problem/8393
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2741번 N 찍기 C / C++ 문제 풀이 for문 (0) | 2019.07.09 |
---|---|
[백준] 15552번 빠른 A+B C / C++ 문제 풀이 for문 (0) | 2019.07.08 |
[백준] 10950번 A+B - 3 C++ 문제 풀이 for문 (0) | 2019.07.04 |
[백준] 2739번 구구단 C / C++ 문제 풀이 for문 (0) | 2019.07.03 |
[백준] 10817번 세 수 C++ 문제 풀이 if문 (0) | 2019.07.02 |