작성
·
474
·
수정됨
답변 2
0
안녕하세요 leo님ㅎㅎ
1 - G를 풀 때, 백준 입력을 그대로 터미널에 붙여 넣는 경우(복사 버튼 사용)에 아래 캡처와 같이 출력이 함께 되어 버리는데 이 케이스를 해결하는 방법을 혹시 아실까요?
>> 사실 이렇게 출력이 함께 되어도 상관없습니다. 그리고 Kyoung님께서 잘 답변해주셨는데요.
특정 배열에 담아서 한꺼번에 출력을 하시면 됩니다.
#include<bits/stdc++.h>
using namespace std;
int n;
string s, ori_s, pre, suf;
vector<string> ret;
int main(){
cin >> n;
cin >> ori_s;
int pos = ori_s.find('*');
pre = ori_s.substr(0, pos);
suf = ori_s.substr(pos + 1);
for(int i = 0; i < n; i++){
cin >> s;
if(pre.size() + suf.size() > s.size()){
ret.push_back("NE");
}else{
if(pre == s.substr(0, pre.size()) && suf == s.substr(s.size() - suf.size()))ret.push_back("DA");
else ret.push_back("NE");
}
}
for(string a : ret) cout << a << '\n';
return 0;
}
이렇게 한번 짜보시겠어요??
또 질문 있으시면 언제든지 질문 부탁드립니다.
좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)
감사합니다.
0
입력이 되는 순간 프로그램에서 출력을 하게 되는데, 또 동시에 다음 입력이 되어버리기 때문에 terminal 상 겹쳐서 표시가 되는 것인데요.
프로그램 상 정답을 바로 출력하지 않고, buffer 배열에 저장했다가, 프로그램이 종료될때 일괄 출력하는 방식을 쓰는 것도 방법일 수 있을 것 같아요 ㅎㅎ