본문 바로가기

Coding Tests/백준 온라인

( C ) 백준 10950 (A+B)

 

<오답>

#include<stdio.h>
int main(void)
{
	int  A[10], B[10];
	int i=0, T;
	
    scanf("%d", &T);
	for (i = 0; i < T; i++)
	{   
		scanf("%d %d", &A[i], &B[i]);
	}
	for (i = 0; i < T; i++)
	{
		printf("%d\n", A[i] + B[i]);
	}
	return 0;
}

처음 런타임 에러가 발생했던 풀이인데, 배열의 길이 값 때문에 에러가 났을 것이라 생각하고 밑의 코드를 새로 작성해 보았다.

 

<정답>

#include<stdio.h>
int main(void)
{
    int i=0, T;
	scanf("%d",&T);
    int  A[T], B[T];
	for (i = 0; i < T; i++)
	{   
		scanf("%d %d", &A[i], &B[i]);
	}
	for (i = 0; i < T; i++)
	{
		printf("%d\n", A[i] + B[i]);
	}
	return 0;
}

배열의 길이를 입력받은 T로 정해줬다. 아까 처음에 길이 값을 10으로 정해줬었는데, 이는 T의 수가 몇인지 알 수 없는 것이었기 때문에 런타임 에러가 발생할 수밖에 없었다. 

 

<정답 2>

#include<stdio.h>
int main(void)
{
	int A, B;
	int T;
	scanf("%d", &T);
	for (int i = 0;i<T;i++)
	{
		scanf("%d %d", &A, &B);
		printf("%d\n", A + B);
	}
	return 0;
}

사실 가장 먼저 작성한 풀이이다. 문제의 결과 출력에는 결괏값만 딱 나와있어서 다르게 나와 오답이라 할 것을 고려해 

다른 풀이로 풀었지만 정답이다.