Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

5 Commits
ย 
ย 

Repository files navigation

2021 ๋งˆ์Šคํ„ฐ์ฆˆ ์ฝ”์Šค ํ…Œ์ŠคํŠธ

๋ฌธ์ œ ๊ฐœ์š”

  • 1๋‹จ๊ณ„: ๋‹จ์–ด ๋ฐ€์–ด๋‚ด๊ธฐ ๊ตฌํ˜„ํ•˜๊ธฐ
  • 2๋‹จ๊ณ„ : ํ‰๋ฉด ํ๋ธŒ ๊ตฌํ˜„ํ•˜๊ธฐ
  • 3๋‹จ๊ณ„ : ๋ฃจ๋น…์Šค ํ๋ธŒ ๊ตฌํ˜„ํ•˜๊ธฐ


1๋‹จ๊ณ„: ๋‹จ์–ด ๋ฐ€์–ด๋‚ด๊ธฐ ๊ตฌํ˜„ํ•˜๊ธฐ

์„ค๋ช…

while (1)
{
    cin >> word >> rotate_num >> direction;
    if (-100 <= rotate_num && rotate_num < 100)
        break;
    else
        cout << "์ •์ˆ˜๋Š” -100 <= N < 100 ์œผ๋กœ ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”." << endl;
}

๋‹จ์–ด์™€ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•  ๋•Œ, ์ •์ˆ˜์˜ ๋ฒ”์œ„๋ฅผ ๋งŒ์กฑํ•ด์•ผ ๋‹จ์–ด๋ฅผ ๋ฐ€์–ด๋ƒ…๋‹ˆ๋‹ค.


if (direction == 'L' || direction == 'l' ||
(direction == 'R' && rotate_num < 0) || (direction == 'r' && rotate_num < 0))
{
    rotate_num = abs(rotate_num) % word.length();
    rotate(word.begin(), word.begin() + rotate_num, word.end());
}
else
{
    rotate_num = abs(rotate_num) % word.length();
    rotate(word.rbegin(), word.rbegin() + rotate_num, word.rend());
}

๋ฐฉํ–ฅ์€ 2๊ฐ€์ง€ ๊ธฐ์ค€์œผ๋กœ ์ •ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  1. ์™ผ์ชฝ์œผ๋กœ ๋ฐ€๊ธฐ : L๊ณผ ์–‘์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›๊ฑฐ๋‚˜, R๊ณผ ์Œ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ
  2. ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฐ€๊ธฐ : R๊ณผ ์–‘์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๊ฑฐ๋‚˜, L๊ณผ ์Œ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ

๋ฐฉํ–ฅ์„ ์ •ํ–ˆ๋‹ค๋ฉด ๋‹จ์–ด์˜ ๊ธธ์ด๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๋งŒํผ ํšŒ์ „์„ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.



2๋‹จ๊ณ„: ํ‰๋ฉด ํ๋ธŒ ๊ตฌํ˜„ํ•˜๊ธฐ

์„ค๋ช…


cube_print()

void cube_print(char cube_arr[][3])
{
    for (int i = 0; i < 3; i++)
        cout << cube_arr[i][0] << " " << cube_arr[i][1] << " " << cube_arr[i][2] << endl;
    cout << endl;
}

ํ‰๋ฉด ํ๋ธŒ์˜ ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.


U_cw(), U_ccw() โ€ฆ

void U_cw(char cube_arr[][3])
{
    char temp = cube_arr[0][2];
    cube_arr[0][2] = cube_arr[0][1];
    cube_arr[0][1] = cube_arr[0][0];
    cube_arr[0][0] = temp;
}

์„ ํƒํ•œ ์ค„์„ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ€์–ด๋ƒ…๋‹ˆ๋‹ค.

void U_ccw(char cube_arr[][3])
{
    char temp = cube_arr[0][0];
    cube_arr[0][0] = cube_arr[0][1];
    cube_arr[0][1] = cube_arr[0][2];
    cube_arr[0][2] = temp;
}

์„ ํƒํ•œ ์ค„์„ ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋ฐ€์–ด๋ƒ…๋‹ˆ๋‹ค. ์œ„ ํ•จ์ˆ˜๋“ค์€ U, R, L, B๋กœ ๋ฐฉํ–ฅ์„ ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


main()

cout << "CUBE> ";
cin >> input;

for (int i = 0; i < input.length(); i++)
{
    str_temp = input[i];
    if (i != input.length() - 1)
    {
        if (input[i + 1] == '\'')
        {
            str_temp += '\'';
            i++;
        }
    }

input์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๊ฒŒ ๋˜๋ฉด ์—ฐ์†์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์˜ ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ ๋ฌธ์ž๊ฐ€ ๋ฌธ์ž ์ธ์ง€ ๋ฌธ์ž + ' ์ธ์ง€ ๊ฒ€์ถœ์„ ํ•œ ํ›„, str_temp์— ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

    if (str_temp == "U")
        U_ccw(cube_arr);
    else if (str_temp == "U'")
        U_cw(cube_arr);
    else if (str_temp == "R")
        R_ccw(cube_arr);
    else if (str_temp == "R'")
        R_cw(cube_arr);
...

์ด์ œ str_temp๋ฅผ ํ™•์ธํ•˜์—ฌ ๊ทธ์— ๋งž๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ๋ธŒ๋ฅผ ํšŒ์ „์‹œํ‚ต๋‹ˆ๋‹ค.

    else if (str_temp == "Q")
    {
        cout << "Bye~" << endl;
        return 0;
    }

'Q'๋ฅผ ์ž…๋ ฅ ๋ฐ›์œผ๋ฉด "Bye~"๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.



3๋‹จ๊ณ„: ๋ฃจ๋น…์Šค ํ๋ธŒ ๊ตฌํ˜„ํ•˜๊ธฐ

์„ค๋ช…


์ „์—ญ๋ณ€์ˆ˜


char cubeU[3][3] = { {'B', 'B', 'B'}, {'B', 'B', 'B'}, {'B', 'B', 'B'} };
char cubeM1[3][3] = { {'W', 'W', 'W'}, {'W', 'W', 'W'}, {'W', 'W', 'W'} };
char cubeM2[3][3] = { {'O', 'O', 'O'}, {'O', 'O', 'O'}, {'O', 'O', 'O'} };
char cubeM3[3][3] = { {'G', 'G', 'G'}, {'G', 'G', 'G'}, {'G', 'G', 'G'} };
char cubeM4[3][3] = { {'Y', 'Y', 'Y'}, {'Y', 'Y', 'Y'}, {'Y', 'Y', 'Y'} };
char cubeL[3][3] = { {'R', 'R', 'R'}, {'R', 'R', 'R'}, {'R', 'R', 'R'} };

ํ๋ธŒ์˜ ๋ฉด์„ ๊ธฐ์ค€์œผ๋กœ 3x3 ๋ฐฐ์—ด์„ ์ „์—ญ๋ณ€์ˆ˜๋กœ ์ƒ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.


printCube()

void printCube()
{
    for (int i = 0; i < 3; i++)
        cout << "\t" << cubeU[i][0] << " " << cubeU[i][1] << " " << cubeU[i][2] << endl;

    for (int i = 0; i < 3; i++)
    {
        cout << cubeM1[i][0] << " " << cubeM1[i][1] << " " << cubeM1[i][2] << "\t";
        cout << cubeM2[i][0] << " " << cubeM2[i][1] << " " << cubeM2[i][2] << "\t";
        cout << cubeM3[i][0] << " " << cubeM3[i][1] << " " << cubeM3[i][2] << "\t";
        cout << cubeM4[i][0] << " " << cubeM4[i][1] << " " << cubeM4[i][2] << "\t" << endl;
    }
    for (int i = 0; i < 3; i++)
        cout << "\t" << cubeL[i][0] << " " << cubeL[i][1] << " " << cubeL[i][2] << endl;
}

ํ๋ธŒ์˜ ๊ฐ ๋ฉด์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.์ถœ๋ ฅ ํ™”๋ฉด์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

        B B B
        B B B
        B B B
W W W   O O O   G G G   Y Y Y
W W W   O O O   G G G   Y Y Y
W W W   O O O   G G G   Y Y Y
        R R R
        R R R
        R R R

rotateF_cw(), rotateR_cw() ...

void rotateF_cw()
{
    char temp[3] = {};

    for (int i = 0; i < 3; i++)
    {
        temp[i] = cubeU[2][i];
        cubeU[2][i] = cubeM1[2 - i][2];
        cubeM1[2 - i][2] = cubeL[0][2 - i];
        cubeL[0][2 - i] = cubeM3[i][0];
        cubeM3[i][0] = temp[i];
    }
    for (int j = 0; j < 2; j++)
    {
        temp[j] = cubeM2[0][j];
        cubeM2[0][j] = cubeM2[2 - j][0];
        cubeM2[2 - j][0] = cubeM2[2][2 - j];
        cubeM2[2][2 - j] = cubeM2[j][2];
        cubeM2[j][2] = temp[j];
    }
}

ํ๋ธŒ์˜ F, R, U, B, L, D ๋ถ€๋ถ„์„ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.


rotateF_ccw(), rotateR_ccw() ...

void rotateF_ccw()
{
    char temp[3] = {};

    for (int i = 0; i < 3; i++)
    {
        temp[i] = cubeU[2][i];
        cubeU[2][i] = cubeM3[i][0];
        cubeM3[i][0] = cubeL[0][2 - i];
        cubeL[0][2 - i] = cubeM1[2 - i][2];
        cubeM1[2 - i][2] = temp[i];
    }
    for (int j = 0; j < 2; j++)
    {
        temp[j] = cubeM2[0][j];
        cubeM2[0][j] = cubeM2[j][2];
        cubeM2[j][2] = cubeM2[2][2 - j];
        cubeM2[2][2 - j] = cubeM2[2 - j][0];
        cubeM2[2 - j][0] = temp[j];
    }
}

ํ๋ธŒ์˜ F, R, U, B, L, D ๋ถ€๋ถ„์„ ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.


string checkDirection(string input, int &index)

string checkDirection(string input, int& index)
{
    if (index != input.length() - 1)
    {
        if (input[index + 1] == '2' || input[index + 1] == '\'')
        {
            index++;
            return input.substr(index - 1, 2);
        }
    }
    return input.substr(index, 1);
}

main ํ•จ์ˆ˜์—์„œ ์กฐ์ž‘์„ ํ•œ ์ค„๋กœ input์— ์ž…๋ ฅ ๋ฐ›์œผ๋ฉด ํ˜„์žฌ index์— ์žˆ๋Š” ์กฐ์ž‘์ด ๋ฌด์—‡์ธ์ง€ ํŒ๋‹จํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.


rotateCube_cw(string direction, int &count)

void rotateCube_cw(string direction, int& count)
{
    if (direction[0] == 'F')
        rotateF_cw();
    else if (direction[0] == 'R')
        rotateR_cw();
    else if (direction[0] == 'U')
        rotateU_cw();
    else if (direction[0] == 'B')
        rotateB_cw();
    else if (direction[0] == 'L')
        rotateL_cw();
    else if (direction[0] == 'D')
        rotateD_cw();
    count++;
}

์กฐ์ž‘ ๋ฐฉํ–ฅ์ด ๋“ค์–ด์žˆ๋Š” direction ๋ณ€์ˆ˜๊ฐ€ ๋ฌด์—‡์ธ์ง€ ํŒ๋‹จํ•˜์—ฌ ๊ทธ ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์กฐ์ž‘๊ฐฏ์ˆ˜๋ฅผ ์นด์šดํŠธํ•˜๊ธฐ ์œ„ํ•ด count๋ณ€์ˆ˜๋Š” ์ด ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋ ๋•Œ๋งˆ๋‹ค ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.


rotateCube_ccw(string direction, int &count)

void rotateCube_ccw(string direction, int& count)
{
    int repeatNum = 0;
    if (direction[1] == '2')
        repeatNum++;

    for (int i = 0; i <= repeatNum; i++)
    {
        if (direction[0] == 'F')
            rotateF_ccw();
        else if (direction[0] == 'R')
            rotateR_ccw();
        else if (direction[0] == 'U')
            rotateU_ccw();
        else if (direction[0] == 'B')
            rotateB_ccw();
        else if (direction[0] == 'L')
            rotateL_ccw();
        else if (direction[0] == 'D')
            rotateD_ccw();
        count++;
    }
}

rotateCube_cw์™€ ๋ฐ˜๋Œ€๋กœ, ๋ฐ˜์‹œ๊ณ„ ๋ฐฉํ–ฅ์œผ๋กœ ํšŒ์ „ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ ์ด ์žˆ๋‹ค๋ฉด ์ด ํ•จ์ˆ˜๋Š” ์กฐ์ž‘ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ด๋Š” direction์˜ ๊ธธ์ด๊ฐ€ 2์ด๋ฉด ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ex) R', R2

๋”ฐ๋ผ์„œ direction[1]์„ ๊ฒ€์‚ฌํ•˜์—ฌ ' ์ด๋ผ๋ฉด repeatNum์€ 0์ด ๋˜์–ด ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ 1๋ฒˆ ํšŒ์ „ํ•˜์ง€๋งŒ,
direction[1]์ด 2 ๋ผ๋ฉด repeatNum์€ 1์ด ๋˜์–ด ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ 2๋ฒˆ ํšŒ์ „์‹œ์ผœ
์œ„์˜ R2์™€ ๊ฐ™์€ 2๋ฒˆ ํšŒ์ „ํ•˜๋Š” ์ปค๋งจ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.


printTime(chrono::system_clock::time_point startTime)

void printTime(chrono::system_clock::time_point startTime)
{
    chrono::system_clock::time_point endTime = chrono::system_clock::now();
    chrono::minutes min = chrono::duration_cast<chrono::minutes>(endTime - startTime);
    chrono::seconds sec = chrono::duration_cast<chrono::seconds>(endTime - startTime);
    int min60 = min.count() % 60;
    int sec60 = sec.count() % 60;

    cout << "๊ฒฝ๊ณผ์‹œ๊ฐ„: " << setw(2) << setfill('0') << min60 << ":";
    cout << setw(2) << setfill('0') << sec60 << endl;
}

๊ฒฝ๊ณผ์‹œ๊ฐ„์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
00:00 ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ์กฐ์ •์ž๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณต๋ฐฑ์„ 0์œผ๋กœ ์ฑ„์› ์Šต๋‹ˆ๋‹ค.


shuffleCube()

void shuffleCube()
{
    random_device rd;
    mt19937 gen(rd());
    uniform_int_distribution<int> dis(0, 5);

    for (int i = 0; i < 100; i++)
    {
        if (dis(gen) == 0)
            rotateF_cw();
        else if (dis(gen) == 1)
            rotateR_cw();
        else if (dis(gen) == 2)
            rotateU_cw();
        else if (dis(gen) == 3)
            rotateB_cw();
        else if (dis(gen) == 4)
            rotateL_cw();
        else if (dis(gen) == 5)
            rotateD_cw();
    }
}

ํ๋ธŒ๋ฅผ ๋ฌด์ž‘์œ„๋กœ ์„ž๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
๋‚œ์ˆ˜๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๋ฌด์ž‘์œ„ ์ˆ˜์— ๋”ฐ๋ผ 100๋ฒˆ ์„ž์Šต๋‹ˆ๋‹ค.


string endFlagCheck(int &index, string input)

string endFlagCheck(int& index, string input)
{
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            if (cubeU[1][1] != cubeU[i][j] || cubeM1[1][1] != cubeM1[i][j] ||
                cubeM2[1][1] != cubeM2[i][j] || cubeM3[1][1] != cubeM3[i][j] ||
                cubeM4[1][1] != cubeM4[i][j] || cubeL[1][1] != cubeL[i][j])
                return "NO";
        }
    }
    index = input.length();
    return "YES";
}

ํ๋ธŒ๊ฐ€ ๋‹ค ๋งž์ถ”์–ด ์กŒ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
๋‹ค ๋งž์ถ”์–ด ์กŒ๋‹ค๋ฉด YES ๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ main ํ•จ์ˆ˜์—์„œ ํ™•์ธํ•˜๊ณ  ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.
2์ค‘ for๋ฌธ์„ ํ†ตํ•ด ๊ฐ ๋ฉด์ด ๋งž์ถ”์–ด ์กŒ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋“ค์—ฌ์“ฐ๊ธฐ๊ฐ€ 4์ค„์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


main()

int main()
{
    chrono::system_clock::time_point startTime = chrono::system_clock::now();

    string input = "";
    string direction = "";
    string endFlag = "NO";
    int count = 0;
    ...

์ฒ˜์Œ์— mainํ•จ์ˆ˜์—์„œ ์ดˆ๊ธฐํ™” ํ•˜๋Š” ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
endFlag๋Š” NO๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ฒ˜์Œ ํ๋ธŒ๊ฐ€ ๋‹ค ๋งž์ถ”์–ด์ง„ ์ƒํƒœ์—์„œ ์‹œ์ž‘ํ•  ๋•Œ, ์ข…๋ฃŒ๋จ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.
count๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ข…๋ฃŒ ์‹œ์ ์—์„œ ์กฐ์ž‘๊ฐฏ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

    while (1)
    {
        if (endFlag == "NO")
        {
            cout << "CUBE> ";
            cin >> input;
        }
        else
        {
            cout << "*****************************************************************" << endl;
            cout << "             ์ถ•ํ•˜๋“œ๋ฆฝ๋‹ˆ๋‹ค! ํ๋ธŒ๋ฅผ ์™„์„ฑํ•˜์…จ์Šต๋‹ˆ๋‹ค!" << endl;
            cout << "*****************************************************************" << endl;
        }

        if (input == "Q" || endFlag == "YES")
        {
            printTime(startTime);
            cout << "์กฐ์ž‘๊ฐฏ์ˆ˜: " << count << endl;
            cout << "์ด์šฉํ•ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋šœ๋šœ๋šœ." << endl;
            return 0;
        }
        ...

์ฒ˜์Œ ์‹œ์ ์—๋Š” endFlag = NO์ด๊ธฐ์— ํ๋ธŒ์˜ ์กฐ์ž‘์„ ์ž…๋ ฅ๋ฐ›๊ณ  ์‹œ์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
๊ทธ ํ›„์—๋Š” Q๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ํ๋ธŒ๊ฐ€ ๋‹ค ์™„์„ฑ๋˜์—ˆ์„ ์‹œ
printTime(startTime)์„ ํ†ตํ•ด ๊ฒฝ๊ณผ ์‹œ๊ฐ„์„ ์ถœ๋ ฅํ•˜๊ณ , count๋ฅผ ํ†ตํ•ด ์กฐ์ž‘๊ฐฏ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ํ›„ ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

        ...
        if (input == "shuffle")
        {
            cout << "ํ๋ธŒ๋ฅผ ์„ž์Šต๋‹ˆ๋‹ค." << endl;
            cout << "์ž ์‹œ๋งŒ ๊ธฐ๋‹ค๋ ค์ฃผ์„ธ์š”." << endl;
            shuffleCube();
            printCube();
            continue;
        }
        ...

shuffle์ด ์ž…๋ ฅ๋˜๋ฉด ํ๋ธŒ๋ฅผ ์„ž์€ ํ›„ ํ๋ธŒ์˜ ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ  ๋ฐ˜๋ณต๋ฌธ์˜ ์ฒ˜์Œ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.

        ...
        for (int index = 0; index < input.length(); index++)
        {
            direction = checkDirection(input, index);
            cout << direction << endl;
            if (direction.length() == 1)
                rotateCube_cw(direction, count);
            else
                rotateCube_ccw(direction, count);
            printCube();
            endFlag = endFlagCheck(index, input);
        }
    }
    ...

Q์™€ shuffle์ด ์•„๋‹Œ ์กฐ์ž‘๋ฒ•์ด ์ž…๋ ฅ์ด ๋˜๋ฉด checkDirection์„ ํ†ตํ•ด direction์— ์กฐ์ž‘ ๋ฐฉํ–ฅ์„
์ž…๋ ฅํ•˜๊ฒŒ ๋˜๊ณ , ๋‹จ์ˆœ ์กฐ์ž‘(F, R, U, B, L, D)์ด๋ผ๋ฉด rotateCube_cw๋ฅผ ํ†ตํ•ด ์‹œ๊ณ„๋ฐฉํ–ฅ ํšŒ์ „์„,
ํŠน์ˆ˜ ์กฐ์ž‘(F', F2 ...)์ด๋ผ๋ฉด rotateCube_ccw๋ฅผ ํ†ตํ•ด ๋ช…๋ น์–ด์— ๋”ฐ๋ฅธ ํšŒ์ „์„ ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ํ›„ printCube๋ฅผ ํ†ตํ•ด ํ๋ธŒ์˜ ์ƒํƒœ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ 
endFlagCheck๋ฅผ ํ†ตํ•ด ํ๋ธŒ๊ฐ€ ๋‹ค ๋งž์ถ”์–ด ์กŒ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors