https://www.acmicpc.net/problem/1032
코드
#include <stdio.h>
#include <string.h>
#define MAX_LINE 51
#define MAX_WORD 51
int main()
{
int n;
char fileNames[MAX_LINE][MAX_WORD];
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%s", fileNames[i]);
strcpy(fileNames[n], fileNames[0]);
for (int i = 1; i < n; i++)
{
for (int j = 0; j < strlen(fileNames[0]); j++) if (fileNames[0][j] != fileNames[i][j]) fileNames[n][j] = '?';
}
printf("%s", fileNames[n]);
return 0;
}
코드 설명
반복문을 돌면서 파일 이름을 입력받아 배열에 값을 저장한다. 이후 첫번째로 들어온 파일 이름을 복사해서 마지막 인덱스에 그대로 저장한다. (첫 번째로 들어온 값을 기준으로 결과로 출력되는 값을 정할 것이기 때문에 이렇게 했다. )
위의 이유로 겉의 반복문을 0이 아닌 1부터 시작했다. 안쪽 반복문에서는 문자들을 하나하나 비교해서 다른 경우에는 결과로 사용하는 마지막 인덱스에 저장된 문자열의 해당 인덱스에 ?를 저장한다.
반복문을 모두 종료하고 마지막 인덱스에 저장된 문자열을 출력한다.
느낀 점
strcpy함수를 처음 써 본 코드다. 입력값을 유지하면서 결과를 출력하고 싶어서 이렇게 했다.
'PS (C, C++)' 카테고리의 다른 글
[백준/C] 1598 꼬리를 무는 숫자 나열 (0) | 2022.08.22 |
---|---|
[백준/C] 1159 농구 경기 (0) | 2022.08.21 |
[백준/C] 1010 다리놓기 (0) | 2022.08.20 |
[백준/C] 1924 2007년 (0) | 2022.08.20 |
[백준/C] 문자열 (0) | 2022.08.20 |