1032_명령 프롬프트
링크
https://www.acmicpc.net/problem/1032
풀이
우선 예제를 보면 문제를 더 쉽게 이해할 수 있습니다.
최소한의 '?'를 사용해서 나타내야 합니다.
그러면 모든 문장의 i번째 문자가 다 같다면 i번째 문자 그대로 출력하고, 다른 문자가 한 번이라도 쓰였을 경우 '?'를 출력해주면 됩니다.
그래서 저는 첫 번째 문장을 비교 대상으로 놓고 다른 문장들을 비교하는 방법을 사용했습니다.
코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
//1032_명령 프롬프트 #include <iostream> #include <string> using namespace std;
int n; char c; string s[50];
int main() { scanf("%d", &n);
if (n == 1) { // n == 1 일 때 처리 cin >> s[0]; cout << s[0] << endl; return 0; }
for (int i = 0; i < n; ++i) cin >> s[i]; // 입력
for (int i = 0; i < s[0].length(); ++i) { // i번째 문자를 비교 c = s[0].at(i); for (int j = 1; j < n; ++j) { // j번째 문장들의 if (c != s[j].at(i)) { cout << '?'; // 다르면 ? break; }
else if (j == n - 1) { printf("%c", c); // 다 같으면 i번째 알파벳 break; } } }
return 0; } |
'PS > BOJ' 카테고리의 다른 글
[백준 BOJ] 1057 토너먼트 (0) | 2018.10.31 |
---|---|
[백준 BOJ][그리디] 1049 기타줄 (0) | 2018.10.30 |
[백준 BOJ] 1026 보물 (0) | 2018.10.28 |
[백준 BOJ] 1009 분산처리 (0) | 2018.10.27 |
[백준 BOJ] 1002 터렛 (0) | 2018.10.26 |