본문 바로가기

Algorithm

[백준] 11719번 : 그대로 출력하기 2 - C/C++

728x90

 

문제가 간단하다.

설명도 엄청 간결하다.

 

이 문제를 해결하기 위해서 쓰인 개념은

getline()이다.

 

getline() 함수를 사용하기 위해서는 string 라이브러리를 사용해야 한다.

공백의 문자열이 주어질 수도 있어서 while 문의 조건식으로 getline() 함수를 사용하자.

string str;
while(getline(cin,str)){
    cout << str << endl;
}

 

이렇게 코드를 작성하면 된다.

근데 입력이 없다면 종료가 되어야하는데,

내가 작성한 코드는 control(^)+c 를 눌러야 종료가 된다.

이런식으로 작성해서 제출한 코드가 수두룩빽빽인데,

다 맞았다고 하니까 이번에도 스리슬쩍..

 

내가 처음에 썼던 getline() 함수는 아래와 같다.

getline(cin, str);
cout << str;

이렇게 되어버리면 공백을 포함해서 단 한 줄만 입력이 가능하다.

그렇기 때문에 while 문을 통하여 getline() 함수를 제어문으로써 사용해야 한다.

 

 

전체 코드

#include <iostream>
#include <string>

//그대로 출력하기2
using namespace std;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    
    string str;
    while(getline(cin,str)){
        cout << str << endl;
    }
}

 

 

브론즈3의 문제였다. 공백을 포함해서 출력하기 위한 함수가 무엇인지만 알면 쉽게 풀 수 있는 문제라고 생각한다.

getline()을 알아도 while 문으로 처리하는 것을 생각하지 못했다면 필자처럼 쉽게는 풀지 못했을 것 같다.

C++에서는 다양한 입력 함수가 존재한다. 다음 글에서는 C++에서 사용되는 입력 함수에 대해서 글을 써보고자 한다.

 

 

 

 

 

 

 

 

 

 

 

더 좋은 풀이가 있다면 댓글로 알려주세요 !!

피드백 환영입니다☺️

728x90