[C] 백준 10950번 : 정수를 입력받은 후 합 출력

2020. 6. 1. 10:39

합을 계산할 테스트 케이스 정수 T를 입력받은 후 그 케이스 수만큼 두 정수들을 입력 받아 차례로 합을 출력하는 프로그램으로 자세한 문제는 아래와 같다.

 

 

 

처음 문제를 봤을 때 우선 for문을 활용하여 T쌍의 두 정수들을 입력받아야겠다는 생각을 했다.

#include <stdio.h>

int main(){
	int T;
	int i;
	int A, B;
	
	scanf("%d", &T);

	for(i=0 ; i<T ; i++){
		scanf("%d %d", &A, &B);
	}
}

 

T쌍의 두 정수들을 입력받은 다음 이제는 그 정수들의 합을 출력해야하는데 어떻게 하면 좋을지를 고민하다가 배열을 사용하기로 했다.

 

배열의 크기가 T인 배열을 만든 다음 첫번째 for문을 통해 A+B의 값을 배열에 입력했다.

그 후 다시 for문을 통해 배열에 입력된 T쌍의 A+B 값들을 출력했다.

#include <stdio.h>

int main(){
	int T;
	int i, j;
	int A, B;
	
	scanf("%d", &T);
	int result[T];
	 
	for(i=0 ; i<T ; i++){
		scanf("%d %d", &A, &B);
		result[i] = A+B;
	}

	for(j=0 ; j<T ; j++){
		printf("%d\n", result[j]);
	}	

}

백준에 제출하니 정답 처리되었다 !

 

그런데 나는 배열을 사용해서 문제를 풀었지만 '단계별로 풀어보기'에서 'for문' 카테고리로 분류가 되어있었던 터라 배열을 사용하지 않고는 어떻게 문제를 풀 수 있는지 궁금해서 다른 사람들이 한 코드를 찾아봤다.

 

찾아보니 A와 B를 입력한 후 바로 다음 행에 A와 B의 합을 출력하도록 코드를 짜도 백준에서 정답처리를 한다고 한다. 따라서 아래와 같이 코드를 제출해도 백준에서 정답임을 확인할 수 있었다.

내가 했던 코드는 T쌍의 A와 B들을 한번에 입력받은 후 다시 한번에 A+B의 값들을 출력하는 방식이었는데 그래도 정답이긴 했다.

#include <stdio.h>

int main(){
	int T;
	int A, B;
	int i;
	
	scanf("%d", &T);
	for(i=0 ; i<T ; i++){
		scanf("%d %d", &A, &B); 
		printf("%d\n", A+B);	
	}	
}

(그와중에 11행에서 \n을 표시하지 않아 한번 틀렸음 ㅎㅎ)

 

아무튼 해결 !

 

 

BELATED ARTICLES

more