[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을 표시하지 않아 한번 틀렸음 ㅎㅎ)
아무튼 해결 !
'Programming > BOJ' 카테고리의 다른 글
[C] 백준 10871번 : X보다 작은 수 (0) | 2020.06.03 |
---|---|
[C] 백준 2439번 : 별 찍기 - 2 (0) | 2020.06.02 |
[C] 백준 2884번 : 알람시계 맞추기 (0) | 2020.05.30 |
[C] 백준 2753번 : 윤년 (0) | 2020.05.30 |
[C] 백준 2588번 : 세자리수 곱셈 (0) | 2020.05.30 |