문제 링크
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);
}
✔ 연산을 한 번만 해주면 된다.
반응형
'Computer Science&Engineering > 코딩테스트' 카테고리의 다른 글
[백준 별찍기 1~9] 쉬운 별찍기 모음 #별찍기꿀팁 #별찍기9개 #피라미드 #역피라미드 #모래시계찍기 #마름모찍기 (1) | 2021.02.22 |
---|---|
[백준 10818] 최소, 최대 구하기 (0) | 2021.02.21 |
[백준 1924] 2007년 #요일구하기 (0) | 2021.02.21 |
[백준 2739] 구구단 (0) | 2021.02.21 |
[백준 2742] 기찍 N (0) | 2021.02.21 |