๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[BAEKJOON C++] 1032_๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ๋ณธ๋ฌธ

๐Ÿฆฅ ์ฝ”ํ…Œ/BAEKJOON

[BAEKJOON C++] 1032_๋ช…๋ น ํ”„๋กฌํ”„ํŠธ

์ง•์ง•์•ŒํŒŒ์นด 2023. 7. 13. 22:07
728x90
๋ฐ˜์‘ํ˜•
์‹œ์ž‘ -> ์‹คํ–‰ -> cmd๋ฅผ ์ณ๋ณด์ž. ๊ฒ€์ • ํ™”๋ฉด์ด ๋ˆˆ์— ๋ณด์ธ๋‹ค.
dir์ด๋ผ๊ณ  ์น˜๋ฉด ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒ์ผ์ด ๋ชจ๋‘ ๋‚˜์˜จ๋‹ค.
์ด๋•Œ ์›ํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ์œผ๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.

dir *.exe๋ผ๊ณ  ์น˜๋ฉด ํ™•์žฅ์ž๊ฐ€ exe์ธ ํŒŒ์ผ์ด ๋‹ค ๋‚˜์˜จ๋‹ค.
"dir ํŒจํ„ด"๊ณผ ๊ฐ™์ด ์น˜๋ฉด ๊ทธ ํŒจํ„ด์— ๋งž๋Š” ํŒŒ์ผ๋งŒ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, dir a?b.exe๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋ฉด ํŒŒ์ผ๋ช…์˜ ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ a์ด๊ณ ,
์„ธ ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ b์ด๊ณ , ํ™•์žฅ์ž๊ฐ€ exe์ธ ๊ฒƒ์ด ๋ชจ๋‘ ๋‚˜์˜จ๋‹ค.
์ด๋•Œ ๋‘ ๋ฒˆ์งธ ๋ฌธ์ž๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ๋‚˜์™€๋„ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, acb.exe, aab.exe, apb.exe๊ฐ€ ๋‚˜์˜จ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋จผ์ € ์ฃผ์–ด์กŒ์„ ๋•Œ, ํŒจํ„ด์œผ๋กœ ๋ญ˜ ์ณ์•ผ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ
ํŒจํ„ด์—๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ "." ๊ทธ๋ฆฌ๊ณ  "?"๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ?์„ ์ ๊ฒŒ ์จ์•ผ ํ•œ๋‹ค.
๊ทธ ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ๋‚˜์˜จ ํŒŒ์ผ๋งŒ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™๋‹ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์— ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค.
๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ํŒŒ์ผ ์ด๋ฆ„์ด ์ฃผ์–ด์ง„๋‹ค.
N์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ  ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™๊ณ  ๊ธธ์ด๋Š” ์ตœ๋Œ€ 50์ด๋‹ค.
ํŒŒ์ผ์ด๋ฆ„์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ '.' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์ถœ๋ ฅ
์ฒซ์งธ ์ค„์— ํŒจํ„ด์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
// [1032] ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ

/*
์‹œ์ž‘ -> ์‹คํ–‰ -> cmd๋ฅผ ์ณ๋ณด์ž. ๊ฒ€์ • ํ™”๋ฉด์ด ๋ˆˆ์— ๋ณด์ธ๋‹ค.
dir์ด๋ผ๊ณ  ์น˜๋ฉด ๊ทธ ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” ์„œ๋ธŒ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒ์ผ์ด ๋ชจ๋‘ ๋‚˜์˜จ๋‹ค.
์ด๋•Œ ์›ํ•˜๋Š” ํŒŒ์ผ์„ ์ฐพ์œผ๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜๋ฉด ๋œ๋‹ค.

dir *.exe๋ผ๊ณ  ์น˜๋ฉด ํ™•์žฅ์ž๊ฐ€ exe์ธ ํŒŒ์ผ์ด ๋‹ค ๋‚˜์˜จ๋‹ค.
"dir ํŒจํ„ด"๊ณผ ๊ฐ™์ด ์น˜๋ฉด ๊ทธ ํŒจํ„ด์— ๋งž๋Š” ํŒŒ์ผ๋งŒ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ๋‚˜์˜จ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, dir a?b.exe๋ผ๊ณ  ๊ฒ€์ƒ‰ํ•˜๋ฉด ํŒŒ์ผ๋ช…์˜ ์ฒซ ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ a์ด๊ณ ,
์„ธ ๋ฒˆ์งธ ๊ธ€์ž๊ฐ€ b์ด๊ณ , ํ™•์žฅ์ž๊ฐ€ exe์ธ ๊ฒƒ์ด ๋ชจ๋‘ ๋‚˜์˜จ๋‹ค.
์ด๋•Œ ๋‘ ๋ฒˆ์งธ ๋ฌธ์ž๋Š” ์•„๋ฌด๊ฑฐ๋‚˜ ๋‚˜์™€๋„ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, acb.exe, aab.exe, apb.exe๊ฐ€ ๋‚˜์˜จ๋‹ค.

์ด ๋ฌธ์ œ๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๊ฐ€ ๋จผ์ € ์ฃผ์–ด์กŒ์„ ๋•Œ, ํŒจํ„ด์œผ๋กœ ๋ญ˜ ์ณ์•ผ ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฌธ์ œ
ํŒจํ„ด์—๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ "." ๊ทธ๋ฆฌ๊ณ  "?"๋งŒ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ?์„ ์ ๊ฒŒ ์จ์•ผ ํ•œ๋‹ค.
๊ทธ ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ๋‚˜์˜จ ํŒŒ์ผ๋งŒ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™๋‹ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์— ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค.
๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ํŒŒ์ผ ์ด๋ฆ„์ด ์ฃผ์–ด์ง„๋‹ค.
N์€ 50๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ  ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ธธ์ด๋Š” ๋ชจ๋‘ ๊ฐ™๊ณ  ๊ธธ์ด๋Š” ์ตœ๋Œ€ 50์ด๋‹ค.
ํŒŒ์ผ์ด๋ฆ„์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ '.' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์ถœ๋ ฅ
์ฒซ์งธ ์ค„์— ํŒจํ„ด์„ ์ถœ๋ ฅํ•˜๋ฉด ๋œ๋‹ค.
*/

#define _CRT_SECURE_NO_WARNINGS
// ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ์—์„œ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ๋ฅผ ์ œ์–ดํ•˜๋Š” ๊ฐœ์ฒด๋ฅผ ์„ ์–ธ
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main()
{
    // ํŒŒ์ผ ์ด๋ฆ„์˜ ๊ฐœ์ˆ˜ N
    int N;
    cin >> N;

    string pattern, temp;
    char ch;

    // sample ํŒŒ์ผ ํ•˜๋‚˜ ๋งŒ๋“ค์–ด๋†“๊ณ 
    cin >> pattern;
    for (int i = 0; i < N - 1; i++) {
        // N๊ฐœ์˜ ์ค„์—๋Š” ๋‚˜๋จธ์ง€ ํŒŒ์ผ ์ด๋ฆ„
        cin >> temp;

        for (int j = 0; j < temp.length(); j++) {
            ch = temp[j];
            // ๋ฌธ์ž๊ฐ€ ๋‹ค๋ฅด๋ฉด ? ๋กœ ์น˜ํ™˜!
            if (ch != pattern[j]) {
                pattern[j] = '?';
            }
        }
    }
    cout << pattern;
}

728x90
๋ฐ˜์‘ํ˜•
Comments