알고리즘 입출력
A+B(3)_10950
기초적인 입출력 문제이다. N 만큼의 두 수 입력을 받고 더한 값을 출력하면 된다.
#include<bits/stdc++.h>
using namespace std;
int main(void) {
int a, b, n;
cin >> n;
while (n--)
{
cin >> a >> b;
cout << a + b << "\n";
}
}
A+B(6)_10953
겉으로는 위 A+B(3)과 유사하다. 그러나 위에는 int로 받아도 상관없으나 아래는 문자열로 처리해줘야 한다. 문자에서 -'0'을 해주어 처리해주었다.
#include<bits/stdc++.h>
using namespace std;
int main(void) {
int n;
string str;
cin >> n;
while (n--)
{
cin >> str;
cout << str[0] - '0' + str[2] - '0' << "\n";
}
}
A+B(7)_11021
출력에 대한 문제이다. 3번 문제를 토대로 출력문을 바꿔주면 된다. printf로 구현하는게 편하지만 cout 으로 구현하였다.
#include<bits/stdc++.h>
using namespace std;
int main(void) {
int n, a, b;
int t;
cin >> n;
t = n;
while (n--)
{
cin >> a >> b;
cout << "Case #" << t - n <<": " <<a+b << "\n";
//printf("Case #%d: %d\n", t - n, a + b);
}
}
A+B(8)_11022
출력에 대한 문제, 위 7번 문제와 거의 비슷하다.
#include<bits/stdc++.h>
using namespace std;
int main(void) {
int n, a, b;
int t;
cin >> n;
t = n;
while (n--)
{
cin >> a >> b;
printf("Case #%d: %d + %d = %d\n", t - n, a, b, a + b);
}
}
빠른 출력_15552
위 문제는 경우의 수가 많을 경우 cin, cout 을 쓰면 시간초과가 날 때가 있다.
이럴 때는
- cin.tie(NULL);
- ios::sync_with_stdio(false);
을 사용하면 된다.
ios_base(cin, cout)를 stdio(printf, scanf, putchar, getchar 등) 등과 동기화(같이 사용) 하지 않도록 함으로서 입출력 속도를 높인다.
#include<bits/stdc++.h>
using namespace std;
int main(void) {
cin.tie(NULL);
ios::sync\_with\_stdio(false);
int n, a, b;
int t;
cin >> n;
t = n;
while (n--)
{
cin >> a >> b;
cout << a + b << '\n';
}
}
그대로 출력하기_11718
문자열이 입력되면 그대로 출력하는 것이다. 이 문제는 20%대 정답률을 보이고 있는데, 입출력 문제인데 이 정도 정답률을 보이는 것은 종료 지점을 찾지 못해서이다. 나도 이 문제를 혼란을 겪고 있다. 첫칸과 마지막 칸에 빈 칸이 오지 못한다는 것을 봐서 마지막 줄 마지막 칸에 빈 칸이 오면 정답이 되는 것을 확인해보려고 한다.
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
char s[10001];
char input;
int i = 0;
int flag;
flag = 0;
while (1)
{
scanf("%1c", &input);
s[i] = input;
if (input == '\n' && flag == 1)
break;
else if (input == ' ' && flag == 0)
flag = 1;
else flag = 0;
i++;
}
}
최소, 최대_10818
N만큼 입력 받아 최소, 최대 값을 출력하는 것이다. C언어라면 하나하나 다 해줘야 겠지만, C++에서는 *max_element, *min_element를 이용하면 된다.
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int n;
int number;
int min_num;
int max_num;
vector num_arr;
cin >> n;
while (n--) {
cin >> number;
num_arr.push_back(number);
}
min_num = *min_element(num_arr.begin(), num_arr.end());
max_num = *max_element(num_arr.begin(), num_arr.end());
cout << min_num << " " << max_num << "\n";
}
728x90
'개발 > 알고리즘' 카테고리의 다른 글
2133_Tri Tiling(DP) (0) | 2020.10.31 |
---|---|
11726번: 2×n 타일링 (0) | 2020.10.25 |
백준_입출력(1) (0) | 2020.10.06 |
알고리즘_부산코딩대회후기 (0) | 2019.11.16 |
알고리즘_부산코딩대회준비_03.동적계획법(DP) (0) | 2019.11.14 |