#include <iostream>
#include <string>
#include <vector>
std::vector<std::string> str;
std::string answer = "";
void pattern(int N)
{
bool same = false;
int k, j = 0;
// 파일 이름의 개수가 1개 이하인 경우
if(N<=1){
answer = str[0];
return;
}
for (; j < str[0].length(); j++)
{
for (k = 0; k < N - 1; k++)
{
if (str[k][j] != str[k + 1][j])
{
same = false;
break;
}
else
same = true;
}
if (same == true) answer += str[k][j];
else answer += "?";
}
}
int main()
{
int N, i = 0;
std::cin>>N; // 파일 이름의 개수
// 문자 입력
std::string st;
for(int i=0; i<N; i++){
std::cin>>st;
str.push_back(st);
}
pattern(N);
std::cout << answer << '\n';
return 0;
}
주어진 예제와 다른 반례도 입력해봤을 때 맞게 나왔었는데 왜 틀린건지 한참 생각했다.
질문에서 다른 사람들이 올려준 반례들을 보다가 N이 한 개인 경우도 있길래
설마..? 하는 마음으로 내 코드로 테스트해보니 아래의 결과처럼 나왔다.
한 개를 입력해도 config라고 나왔어야하는데 여기서 놓쳤다..
그래도 이 반례를 넣어보기까지 많은 시간을 쓴게 아니라서 다행이다^0^
'Algorithm 문제풀기 > Baekjoon' 카테고리의 다른 글
[C++] 13417번 카드 문자열 (0) | 2021.02.16 |
---|---|
[C++] 11497번 통나무 건너뛰기 (0) | 2021.02.14 |
[C++] 1439번 뒤집기 (0) | 2021.02.14 |
[C++] 5585번 거스름돈 (0) | 2021.02.12 |
[C++] 11047번 동전 0 (0) | 2021.02.12 |