• Home
  • About
    • on Weekend photo

      on Weekend

      ๐™Ž๐™ฉ๐™ช๐™™๐™ฎ๐™ž๐™ฃ๐™œ

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • ํ•„์‚ฌ
  • Projects

[๋ฐฑ์ค€] 10789 (C++)

30 Nov 2020

๋ฌธ์ œ๋Š” ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญ
์ฝ”๋“œ๋กœ ๋ฐ”๋กœ ์ด๋™์€ ์—ฌ๊ธฐ๋ฅผ ํด๋ฆญํ•˜์„ธ์š”

ํ’€์ด

๐Ÿ’Ž ๋ฌธ์ œ ์ œ๋ชฉ : ์„ธ๋กœ ์ฝ๊ธฐ
๐Ÿ’Ž ์นดํ…Œ๊ณ ๋ฆฌ : ๋ฌธ์ž์—ด, ์• ๋“œํ˜น
์• ๋“œํ˜น : ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ’€์ดํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ๋œ ํŠน์ˆ˜ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—†์ด, ํ•ด๋‹น ๋ฌธ์ œ๋งŒ์„ ์œ„ํ•ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜ ์ข…๋ฅ˜. ๊ทธ๋ƒฅ ์žฌ๋ฐŒ๋Š” ๋ฌธ์ œํ’€์ด ์ •๋„์ด๋‹ค.

๋‚ด๊ฐ€ ๋ฐฐ์šด ๊ฒƒ

ํ’€๊ณ  ์ฐพ์•„๋ณด๋‹ˆ char 2์ฐจ์› ๋ฐฐ์—ด๋กœ ํ•˜๋ฉด ๋œ๋‹ค.

char str[5][MAX] = { NULL, };
for(int i=0;i<5;i++) cin >> str[i];

ํฌ์ธํ„ฐ ํƒ€์ž…์œผ๋กœ ์ƒ๊ฐํ•ด๋ณด๋ฉด, C์—์„œ๋„ ๊ฐ€๋Šฅํ•œ ํ’€์ด์ธ๋ฐ C++์ด๋ผ๋Š” ์ด์œ ๋กœ deque๋ฅผ ์‚ฌ์šฉํ•ด ๋น„ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ์ผ์œผ์ผฐ๋‹ค๋Š” ์ ์ด ์•„์‰ฝ๋‹ค.
์ •์„ ํ’€์ด๋Š” steffen-lee๋‹˜์˜ ๋ฌธ์ œํ’€์ด์ธ ๋“ฏ. ์ •์„ ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

#include<iostream>
using namespace std;

const int Max = 15;
int main() {
    char str[5][Max] = { NULL, };//NULL๋กœ ์ดˆ๊ธฐํ™”
    for (int i = 0; i < 5; ++i)
        cin >> str[i];

    for (int j = 0; j < Max; ++j) {
        for (int i = 0; i < 5; ++i) {
            if (str[i][j] == NULL)//NULL์ด ์žˆ์œผ๋ฉด ๊ฑด๋„ˆ๋œ€
                continue;
            cout << str[i][j];
        }
    }
    return 0;
}

๋ณด๋ฉด ๊ตณ์ด โ€˜*โ€™ ๋“ฑ, ๊ณต๋ฐฑ์„ ํ‘œํ˜„ํ•˜๋Š” ๋‹ค๋ฅธ ์ˆ˜๋ฅผ ์‚ฝ์ž…ํ•˜์ง€ ์•Š๊ณ  ๋ฐฐ์—ด ํฌ๊ธฐ๋ฅผ ์žก๊ณ , ๊ทธ ์•ˆ์— ์ž…๋ ฅ๋˜๋Š” string์„ ์‚ฝ์ž…ํ•œ ํ›„, ๋งŒ์•ฝ ํ•ด๋‹น ๋ถ€๋ถ„์ด NULL์ด๋ผ๋ฉด ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค. NULL์ธ ๋ถ€๋ถ„์„ ์ ‘๊ทผํ•˜๋Š” ๋ฐœ์ƒ์ด ๋‚œ ๊นŒ๋”ฑ ์‹ค์ˆ˜ํ–ˆ๋‹ค๊ฐ„ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์— ์ž์ฃผ ์จ๋จน์ง€ ์•Š์•˜์—ˆ๋Š”๋ฐ, ๊ตณ์ด.. ์กฐ์‹ฌ์„ ํ•ด์•ผ ํ• ๊นŒ? ๊ทœ๋ชจ๊ฐ€ ํฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด๋ฉด ๋ชฐ๋ผ๋„, ๋‚˜๋„ ๋ชจ๋ฅด๋Š” ๊ณณ์—์„œ NULL์„ ์ฐธ์กฐํ•ด์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ ๋ฆฌ๋„ ์—†๊ณ โ€ฆ
์•„๋ฌดํŠผ๊ฐ„์— ๋‚ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

๐ŸŽ‰

์ฝ”๋“œ
#include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <algorithm>

using namespace std;

int main()
{

	deque<string> charArr;
	int maxL = 0;
	for (int h = 0; h < 5; h++)
	{
		string tmp;
		cin >> tmp;
		charArr.push_back(tmp);
		maxL = max(maxL, int(tmp.length()));
	}
	for (int h = 0; h < 5; h++)
	{
		string tmp = charArr.front();
		charArr.pop_front();
		int L = tmp.length();
		tmp.append(maxL - L, '*');
		charArr.push_back(tmp);
	}
	for(int l=0;l<maxL;l++)
		for (int h = 0; h < 5; h++)
		{
			string tmp = charArr.front();
			charArr.pop_front();
			if (tmp[l] != '*') cout << tmp[l];
			charArr.push_back(tmp);
		}

	return 0;
}



problem_solvingc++ Share Tweet +1