본문 바로가기
Algorithm 문제풀기/Baekjoon

[C++] 1032번 명령 프롬프트

by 내일이야 2021. 2. 1.
#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