알고리즘 & 자료구조/기초 다잡기
2. A부터 B까지의 자연수의 합
알못에서잘알까지
2020. 9. 1. 09:24
2번 문제
. 1번 문제
1번
내가 풀이한 답 제 1 문제
내가 풀이한 답
#include <iostream>
using namespace std;
int main(int argc, char** argv) {
int a, b, sum=0;
cin >> a >> b;
for(int i=a; i<=b; i++){
sum += i;
if(i==b){
cout << i << " = ";
}
else {
cout << i << " + ";
}
}
cout << sum << endl;
return 0;
}
문제를 보자마자 떠오른 생각은 string 변수를 하나 두어 변수에 값들을 추가하는 방식으로 생각을 했다. 하지만, 굳이 string 변수를 쓰지 않아도 cout 객체만으로도 출력할 수 있음을 깨달았다. 출력 예제를보면 마지막에만 "=" 이고 나머지는 "+" 인 것을 확인하고 순회를 돌면서 마지막 숫자인 b에 해당하는 부분에 분기문(if)으로 처리를 하였다.
결과는 통과를 하였다.
사이트의 답안
#include<stdio.h>
int main(){
int a, b, sum=0, i;
scanf("%d %d", &a, &b);
for(i=a; i<b; i++){
sum+=i;
printf("%d + ", i);
}
printf("%d = %d\n", i, sum+i);
return 0;
}
여기서는 C 언어로 작성되었다. 굳이 분기문(if)문을 안쓰고 짤 수 있다는 것을 확인했다. +에 해당하는 부분에만 순회를 돌고 마지막은 그냥 따로 빼서 출력을 한 모습... 이렇게 더 간단하게 짤 수 있다는 것을 느꼈다.