본문 바로가기

알고리즘/백준 문제풀기

BOJ 백준 1032 명령 프롬프트 <문자열 처리>

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


< 명령 프롬프트 >


이 문제는 몇 개의 파일 이름을 받아올 지 입력받은 뒤 그 수 만큼 문자열들을 받아오고,


그 문자열들의 공통된 문자를 제외한 다른 문자를 '?'로 바꿔주면 되는 문제이다.


인덱스 0번 째의 문자열을 기준으로 다른 모든 문자열들과 비교해가면서 하나라도 다를 경우


해당 문자를 '?'로 바꾸어 주면 된다.


1. 0번째 문자열을 기준으로 삼는다


2. 0번째 문자열과 다른 모든 문자열과 비교하여 다른 문자는 '?'로 바꾸어준다.


#include <iostream>
#include <memory.h>
#include <string.h>
#define SIZE 51

using namespace std;

int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	char str[SIZE][SIZE];
	memset(str, 0, sizeof(str));

	int n;
	cin >> n;

	for (int i = 0; i < n; ++i)
	{
		cin >> str[i];
	}

	int iNameSize = strlen(str[0]);

	for (int i = 0; i < iNameSize; ++i)
	{
		char temp = str[0][i];
		for (int j = 1; j < n; ++j)
		{
			if (temp != str[j][i]) str[0][i] = '?';
		}
	}
	cout << str[0] << '\n';

	return 0;
}