728x90
728x90

문제

입력 받은 대로 출력하는 프로그램을 작성하시오.

 

입력

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.

 

출력

입력받은 그대로 출력한다.

 

예제 입력 1 

Hello
Baekjoon
Online Judge

 

예제 출력 1

Hello
Baekjoon
Online Judge
 

알고리즘 분류

  • 구현
  • 문자열

 

문제 출처

https://www.acmicpc.net/problem/11718

 

11718번: 그대로 출력하기

입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시

www.acmicpc.net

 


 

문제 해결 방법

  • [단계별로 풀어보기] 문제집에 새로 추가된 문제이다.
  • 브론즈V 레벨의 문제이지만, 정답률이 29%인 문제이다.
  • 문자열에 대해 이해하고 있으면 쉽게 풀 수 있었던 문제였다.
  • 공백을 포함한 문자열을 그대로 출력시켜야 하므로 @getline@ 함수를 사용해야 한다.
    • @getline@ 함수를 사용하기 위해서는 @<string>@ 헤더를 불러와야 한다.

 

문제에서 입력 횟수와 관련된 조건이 없을 경우

  • 위의 문제와 같이 몇 번의 문자열을 입력하라는 입력 횟수와 관련된 조건이 없을 경우 반복문(@for@ 또는 @while@) 문의 매개변수(Parameter)에 입력을 받는 코드를 넣어준다.
for (입력 받는 코드) { }
while (입력 받는 코드) { }
  • 또는 다음과 같이 @입력 받는 코드@에 @!= EOF@ 조건을 추가해줄 수 있다.
    • EOF(End of File)이란 '파일의 끝', 즉 더 이상 읽을 데이터가 없음을 의미한다.
for (입력 받는 코드 != EOF) { }
while (입력 받는 코드 != EOF) { }
  • @cin@, @getline@과 같은 함수를 사용할 때, 성공적으로 입력 받았을 경우, EOF가 아닌 값이 출력된다. 

 

코드

#include <iostream>
#include <string>
using namespace std;

string S;

void Solve() {
    while (getline(cin, S)) {
        cout << S << '\n';
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    Solve();

    return 0;
}

 

채점 결과

 

참고

  • [단계별로 풀어보기] > [문자열]
  • 브론즈V
728x90
728x90