본문 바로가기

Computer Science&Engineering/코딩테스트

[백준 8393] 합 # 1부터 N까지 합

문제 링크

www.acmicpc.net/problem/8393

 

8393번: 합

n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

www.acmicpc.net

1부터 N까지 합이니까 for문을 사용해도 되고 while 을 사용해도 된다. 

다만, 이 때는 시간 복잡도가 O(N)이 된다. 단순한 계산식을 활용해서 O(1) 코드를 구현할 수 있다.

 

#include <stdio.h>

int main() {
	int N, sum=0;
	scanf("%d", &N);
	
	while(N>0){
		sum += N--; 
	}
	printf("%d",sum);
}

✔  sum += N 을 N 번 계산해주어야 한다.

 

#include <stdio.h>

int main() {
	int N, sum=0;
	scanf("%d", &N);
	printf("%d", N*(N+1)/2);
}

✔ 연산을 한 번만 해주면 된다. 

반응형