코딩/백준 문제 (브론즈)

[백준/1032/C언어] 명령 프롬프트 _ 풀이

룻밤 2023. 8. 19. 15:24

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

 

1032번: 명령 프롬프트

첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은

www.acmicpc.net


풀이

#include <stdio.h>
int main() {
	int n;
	char s[50][51];		// 문자열을 2차원 배열로 설정 (i번째의 문자열)
	char ps[51] = {};	// 문자가 다를때 ?를 출력할 문자열
	int j;

	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%s", &s[i]);		// i번째 문자열 입력
		j = 0;
		while (s[i][j] != '\0') {		// i번째 문자열의 끝까지 탐색
			if (i != 0) {				// i>0
				// 이미 문자가 다른것을 확인했을때 이 과정을 패스
				if (ps[j] != '?'){
					// i-1번째와 i의 문자열을 비교 (중복인지 확인)
					if (s[i - 1][j] != s[i][j])
						ps[j] = '?';		// 중복이 아닐때 ? 저장
				}
			}
			else ps[j] = s[i][j];		// i=0일때 ps에 초기값으로 s[i]를 복사
			j++;
		}
	}
	printf("%s\n", ps);

	return 0;
}