개발/알고리즘

백준_입출력(1)

송디 2020. 10. 6. 23:05

알고리즘 입출력

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++;
  }
}
728x90