<2558번 / A+B -2>
cin은 space 또는 enter로 구분하기 때문에 1000번과 동일한 코드로 구현하였다.
#include <iostream>
using namespace std;
int main(void)
{
int a, b;
cin >> a >> b;
cout << a + b << endl;
return 0;
}
<10950번 / A+B -3>
문제 : 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
이걸 해결하기 위해 난 두 가지 방법을 고민하였다. 첫번째는 테스트케이스만큼 반복문을 돌리되, 입력 아래 바로 출력을 하는것과 두번째는 배열 혹은 동적할당을 하여 출력값을 한번에 보이게 하는것이다. 아래는 구현 코드이다. (말투 너무 보고서 재질,,,)
1. 단순 반복문
#include <iostream>
using namespace std;
int main(void)
{
int t, a, b;
cin >> t;
for (int i = 0; i < t; i++)
{
cin >> a >> b;
cout << a + b << endl;
}
return 0;
}
2. 배열 선언
a와 b를 배열로 선언하여 배열에 입력받은 수를 모두 저장하고 순서대로 반복문을 통해 연산값을 출력한다.
단점 : 테스트케이스를 배열크기만큼밖에 못쓴다. / 메모리가 낭비된다.
#include <iostream>
using namespace std;
int main(void)
{
int a, b, t, r[100];
cin >> t;
for (int i = 0; i < t; i++)
{
cin >> a >> b;
r[i] = a + b;
}
for (int j = 0; j < t; j++)
{
cout << r[j] << endl;
}
return 0;
}
3. 동적할당
다음은 입력받은 테스트케이스만큼 int형 배열을 동적할당하여 결과를 모두 배열에 저장하고 한번에 출력한다. 내 생각엔 이 코드가 가장 적합한것 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <iostream> using namespace std; int main(void) { int a, b, t; cin >> t; int *result = new int[t]; for (int i = 0; i < t; i++) { cin >> a >> b; result[i] = a + b; } for (int j = 0; j < t; j++) { cout << result[j] << endl; } return 0; } |
cs |
<10951번 / A+B -4>
문제 : 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
이 문제는 테스트케이스가 정해지지 않은 문제이다. 이를 해결하기 위해 무한루프를 작성하면 출력초과라는 에러 메세지가 뜬다. 따라서 이를 만족시키려면 while의 조건문 안에서 조건을 걸어놓고 사용해야한다고 한다.
1 2 3 4 5 6 7 8 9 10 |
#include <iostream> using namespace std; int main(void) { int a, b; while (cin >> a >> b) { cout << a + b << endl; } } |
cs |
<10952번 / A+B -5>
위와 동일한 문제이지만 이 때는 입력의 마지막에 0 0이 온다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> using namespace std; int main(void) { int a, b; while (cin >> a >> b) { if (a == 0 && b == 0) break; cout << a + b << endl; } } |
cs |
<10953번 / A+B -6>
이 문제는 두 가지 방법이 있다. 첫째는 문장으로 입력받고 ,기준으로 구분하여 숫자를 구하는것과 두번째는 애초에 ,를 입력받고 숫자를 따로 입력받는 방법!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> #include <string> using namespace std; int main(void) { int a, b, t; char c; cin >> t; int *result = new int[t]; for (int i = 0; i < t; i++) { cin >> a >> c >> b; result[i] = a + b; } for (int j = 0; j < t; j++) { cout << result[j] << endl; } return 0; } |
cs |
이번엔 scanf를 통해 애초에 ,를 입력받게 한다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> #include <string> using namespace std; int main(void) { int a, b, t; cin >> t; int *result = new int[t]; for (int i = 0; i < t; i++) { scanf("%d,%d", &a, &b); result[i] = a + b; } for (int j = 0; j < t; j++) { cout << result[j] << endl; } return 0; } |
cs |
<11021번 / A+B -7>
쉽군 껄껄
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> #include <string> using namespace std; int main(void) { int a, b, t; cin >> t; int *result = new int[t]; for (int i = 0; i < t; i++) { cin >> a >> b; result[i] = a + b; } for (int j = 0; j < t; j++) { cout << "Case #" << j+1 << ": "; cout << result[j] << endl; } return 0; } Colored by Color Scripter |
cs |
<11022번 / A+B -8>
배열 동적할당을 두 개하여 입력을 저장하면 된다
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <iostream> using namespace std; int main(void) { int a, b, t; cin >> t; int *aa = new int[t]; int *bb = new int[t]; for (int i = 0; i < t; i++) { cin >> a >> b; aa[i] = a; bb[i] = b; } for (int j = 0; j < t; j++) { cout << "Case #" << j+1 << ": "; cout << aa[j] << " + " << bb[j] << " = " << aa[j] + bb[j] << endl; } return 0; } Colored by Color Scripter |
cs |
<11718번 / 그대로 출력하기>
이 문제는 한 줄을 그대로 입력받는 함수인 getline을 통해 구현하였다. 이는 띄어쓰기까지 문자열로 입력받아 저장할 수 있다.
cin.getline(cin, 문자열 변수); -> 개행 문자를 만나면 입력을 중단한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <iostream> #include <string> using namespace std; int main(void) { string str; while (1) { getline(cin, str); if (str == "") break; cout << str << endl; } return 0; } |
cs |
'코딩테스트 > BOJ' 카테고리의 다른 글
BOJ 입출력 문제 3 (0) | 2020.08.06 |
---|---|
BOJ 입출력 문제 2 (0) | 2020.08.05 |
1단계 - 입출력과 사칙연산 (0) | 2020.08.01 |
504 Gateway Time-out (0) | 2020.07.27 |
백준 알고리즘 공부 시작! (0) | 2020.07.27 |
댓글