PS/BOJ

[백준 BOJ] 1032 명령 프롬프트

Jubil 2018. 10. 29. 13:19
반응형

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;

}

Colored by Color Scripter

cs

 



반응형

'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