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; }
'알고리즘 > 백준 문제풀기' 카테고리의 다른 글
콜라한캔 :: BOJ 백준 민균이의 비밀번호<문자열 처리> (0) | 2019.01.05 |
---|---|
BOJ 백준 1764 듣보잡 <문자열 처리> (0) | 2019.01.03 |
BOJ 백준 크로아티아 알파벳 <문자열 처리> (0) | 2019.01.02 |
BOJ 백준 1475 방 번호 <문자열 처리> (0) | 2019.01.02 |
BOJ 백준 1152 단어의 개수 <문자열 처리> (0) | 2019.01.01 |