728x90

๋ฌธ์ œ

๋ฐฑ์ค€์ด๋Š” ๋™์ƒ์—๊ฒŒ "๊ฐ€์šด๋ฐ๋ฅผ ๋งํ•ด์š”" ๊ฒŒ์ž„์„ ๊ฐ€๋ฅด์ณ์ฃผ๊ณ  ์žˆ๋‹ค. ๋ฐฑ์ค€์ด๊ฐ€ ์ •์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ์™ธ์น ๋•Œ๋งˆ๋‹ค ๋™์ƒ์€ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฑ์ค€์ด๊ฐ€ ๋งํ•œ ์ˆ˜ ์ค‘์—์„œ ์ค‘๊ฐ„๊ฐ’์„ ๋งํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ, ๊ทธ๋™์•ˆ ๋ฐฑ์ค€์ด๊ฐ€ ์™ธ์นœ ์ˆ˜์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ง์ˆ˜๊ฐœ๋ผ๋ฉด ์ค‘๊ฐ„์— ์žˆ๋Š” ๋‘ ์ˆ˜ ์ค‘์—์„œ ์ž‘์€ ์ˆ˜๋ฅผ ๋งํ•ด์•ผ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐฑ์ค€์ด๊ฐ€ ๋™์ƒ์—๊ฒŒ 1, 5, 2, 10, -99, 7, 5๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์™ธ์ณค๋‹ค๊ณ  ํ•˜๋ฉด, ๋™์ƒ์€ 1, 1, 2, 2, 2, 2, 5๋ฅผ ์ฐจ๋ก€๋Œ€๋กœ ๋งํ•ด์•ผ ํ•œ๋‹ค. ๋ฐฑ์ค€์ด๊ฐ€ ์™ธ์น˜๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋™์ƒ์ด ๋งํ•ด์•ผ ํ•˜๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ 1

7
1
5
2
10
-99
7
5

์ถœ๋ ฅ 1

1
1
2
2
2
2
5

 

์ฝ”๋“œ

#include<iostream>
#include<queue>
#include<vector>

using namespace std;

//1655๋ฒˆ ๊ฐ€์šด๋ฐ๋ฅผ ๋งํ•ด์š”
//์ตœ์†Œํž™, ์ตœ๋Œ€ํž™ ์‚ฌ์šฉ
int main() {
    
    cin.tie(NULL);
    cout.tie(NULL);

    int N,temp;
    priority_queue<int> max;        //์ตœ๋Œ€ํž™       ์šฐ์„ ์ˆœ์œ„ ํ๋Š” default๋กœ less<in>๋ฅผ ์‚ฌ์šฉ
    priority_queue<int,vector<int>,greater<int>> min;       //์ตœ์†Œํž™
    cin >> N;
    for (int i = 0; i < N; i++) {
        cin >> temp;

        (max.size() == min.size()) ? max.push(temp) : min.push(temp);

        if (!max.empty() && !min.empty()&& max.top() > min.top()) {
            //์ค‘๊ฐ„ ๊ฐ’์˜ ์ˆœ์„œ๊ฐ€ ๋‹ฌ๋ผ์ง„๋‹ค๋ฉด ๊ฐ’ ๋ฐ”๊พธ๊ธฐ
            int maxVal, minVal;
            maxVal = max.top();
            minVal = min.top();
            max.pop();
            min.pop();
            max.push(minVal);
            min.push(maxVal);
        }

        cout << max.top()<<"\n";
    }
    
    return 0;
}

 

*๊ฐ„๋‹จํ•œ ํ•ด์„ค*

์—ฌ๋Ÿฌ๊ฐ€์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘์—์„œ ๋ฌด์—‡์„ ์™œ ์“ฐ๋Š”์ง€๊ฐ€ ํ•ต์‹ฌ์ธ๋ฐ ์—ฌ๊ธฐ์„œ๋Š” ์ตœ์†Œํž™, ์ตœ๋Œ€ํž™์„ ์‚ฌ์šฉํ•œ๋‹ค.

๊ทธ ์ด์œ ๋Š” ํž™์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๊ฐ’ ์ค‘ ์ตœ๋Œ“๊ฐ’ ๋˜๋Š” ์ตœ์†Ÿ๊ฐ’์„ ์ฐพ์•„๋‚ด๋Š” ์—ฐ์‚ฐ์ด ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋น ๋ฅธ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

ํž™์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์™„์ „ ์ด์ง„ํŠธ๋ฆฌ์ด๋ฏ€๋กœ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค.

์ตœ๋Œ€ ํž™์€ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ์ €์žฅ๋œ ๊ฐ’์ด ์ปค์ง€๋Š” ๊ตฌ์กฐ์ด๋‹ค. 

์ตœ์†Œ ํž™์€ ๋ฃจํŠธ ๋…ธ๋“œ๋กœ ์˜ฌ๋ผ๊ฐˆ์ˆ˜๋ก ๊ฐ’์ด ์ž‘์•„์ง€๋Š” ๊ตฌ์กฐ์ด๋‹ค.

 

์ด ๋ฌธ์ œ์˜ ๊ฒฝ์šฐ ๋ฐฐ์—ด์„ ๋ฐ˜ํ‹ˆ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ํ•œ์ชฝ์€ ์ตœ์†Œ ํž™, ํ•œ์ชฝ์€ ์ตœ๋Œ€ ํž™์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ์—ฐ์‚ฐํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด ๊ฒฝ์šฐ priority_queue๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. priority_queue๋Š” ํž™์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„๋˜์–ด ์žˆ๊ณ  ์˜ต์…˜์„ ์ด์šฉํ•˜์—ฌ greater<int> ๋ฐ less<int>๋ฅผ ์ด์šฉํ•˜์—ฌ ์œ„์™€๊ฐ™์€ ์ตœ์†Œํž™, ์ตœ๋Œ€ํž™ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ํ†ตํ•ด์„œ ์ค‘๊ฐ„๊ฐ’์„ ์ฐพ๋Š” ๊ฒƒ์ด๋ผ ๋ฐ˜ํ‹ˆ์„ ๋‚˜๋ˆ„์–ด์„œ ์˜ค๋ฆ„์ฐจ์ˆœ, ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜๋Š” ์ตœ์†Œํž™, ์ตœ๋Œ€ํž™์„ ์ด์šฉํ•˜๋ฉด ๋น ๋ฅด๊ฒŒ ํ†ต๊ณผํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

 

 

*์ด ๋ฐฉ๋ฒ•๋งŒ์ด ๋งž๋Š” ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ข‹๊ณ  ๋น ๋ฅธ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค ํ™”์ดํŒ…! '0'/*

๋ฐ˜์‘ํ˜•
728x90

๋ฌธ์ œ

  1. ๋จผ์ € ๋ฑ€์€ ๋ชธ๊ธธ์ด๋ฅผ ๋Š˜๋ ค ๋จธ๋ฆฌ๋ฅผ ๋‹ค์Œ์นธ์— ์œ„์น˜์‹œํ‚จ๋‹ค.
  2. ๋งŒ์•ฝ ์ด๋™ํ•œ ์นธ์— ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด, ๊ทธ ์นธ์— ์žˆ๋˜ ์‚ฌ๊ณผ๊ฐ€ ์—†์–ด์ง€๊ณ  ๊ผฌ๋ฆฌ๋Š” ์›€์ง์ด์ง€ ์•Š๋Š”๋‹ค.
  3. ๋งŒ์•ฝ ์ด๋™ํ•œ ์นธ์— ์‚ฌ๊ณผ๊ฐ€ ์—†๋‹ค๋ฉด, ๋ชธ๊ธธ์ด๋ฅผ ์ค„์—ฌ์„œ ๊ผฌ๋ฆฌ๊ฐ€ ์œ„์น˜ํ•œ ์นธ์„ ๋น„์›Œ์ค€๋‹ค. ์ฆ‰, ๋ชธ๊ธธ์ด๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

์‚ฌ๊ณผ์˜ ์œ„์น˜์™€ ๋ฑ€์˜ ์ด๋™๊ฒฝ๋กœ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์ด ๊ฒŒ์ž„์ด ๋ช‡ ์ดˆ์— ๋๋‚˜๋Š”์ง€ ๊ณ„์‚ฐํ•˜๋ผ.

 

*์ฒ˜์Œ ๋ดค์„๋•Œ ํ„ด์— ๊ด€ํ•œ ๊ฐœ๋…์ด ์ž˜ ์ƒ์„ฑ๋˜์ง€ ์•Š์•˜๋Š”๋ฐ ํ„ด์€ ๋ฌด์กฐ๊ฑด ํ•œ๋ฒˆ๋งŒ ์‹คํ–‰๋˜๋Š” ์‹œ์Šคํ…œ์ด๋‹ค.

 

 

์ž…๋ ฅ 1

6
3
3 4
2 5
5 3
3
3 D
15 L
17 D

์ถœ๋ ฅ 1

9

 

์ž…๋ ฅ 2

10
4
1 2
1 3
1 4
1 5
4
8 D
10 D
11 D
13 L

์ถœ๋ ฅ 2

21

 

์ž…๋ ฅ 3

10
5
1 5
1 3
1 2
1 6
1 7
4
8 D
10 D
11 D
13 L

์ถœ๋ ฅ 3

13

 

 

์ฝ”๋“œ

#include<iostream>
//#include<Windows.h>
#include<deque>
#include<vector>

using namespace std;

int main() {
    
    int N, K,L;     //N : ๋ณด๋“œ์˜ ํฌ๊ธฐ, K : ๋‹ค์Œ ์ค„์— ์‚ฌ๊ณผ์˜ ๊ฐœ์ˆ˜, L : ๋ฑ€์˜ ๋ฐฉํ–ฅ ๋ณ€ํ™˜ ํšŸ์ˆ˜
    int column, row;
    int currentX=0, currentY=0;
    int arrIdx = 0, turnIdx=0;          //arrIdx : ๋ฐฉํ–ฅ๋ฐฐ์—ด ์ธ๋ฑ์Šค, turnIdx : ๋ฐฉํ–ฅ ํšŒ์ „๋ฐฐ์—ด ์ธ๋ฑ์Šค
    int arrow[4][2] = { {1,0},              //์˜ค๋ฅธ์ชฝ
                        {0,1},              //์•„๋ž˜
                        {-1,0},             //์™ผ์ชฝ
                        {0,-1} };           //์œ„
    deque<vector<int>> body;

    cin >> N;

    //ํ•ด๋‹น ๋ฐฐ์—ด๋งŒํผ 2์ฐจ์› ํ–‰๋ ฌ ๋งŒ๋“ค๊ธฐ
    int** board = new int* [N];
    for (int i = 0; i < N; i++) {
        board[i] = new int[N];
    }
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            board[i][j] = 0;
        }
    }

    board[0][0] = 1;
    vector<int> point;
    point.push_back(0);
    point.push_back(0);
    body.push_back(point);

    cin >> K;
    for (int i = 0; i < K; i++) {
        cin >> row >> column;
        board[row-1][column-1] = 2;
    }
    cin >> L;
    int* turn = new int[L];
    int* direction = new int[L];
    int lValue;
    char rValue;

    for (int i = 0; i < L; i++) {
        cin >> lValue >> rValue;
        turn[i] = lValue;
        direction[i] = rValue;
    }

    int time = 0;

    while (time < 10000) {
    
        /* {
            Sleep(1000);
            system("cls");

            cout << "Time :" << time+1 << endl;
            //์ถœ๋ ฅํ•ด์„œ ํ™•์ธํ•˜๊ธฐ
            for (int i = 0; i < N; i++) {
                for (int j = 0; j < N; j++) {
                    cout << board[i][j] << " ";
                }
                printf("\n");
            }
        }*/
        
        if (time == turn[turnIdx] && time != 0) {
            if (direction[turnIdx] == 'D') {
                arrIdx++;
            }
            if (direction[turnIdx] == 'L') {
                arrIdx--;
            }
            turnIdx++;
        }


        if (arrIdx > 3)
            arrIdx = arrIdx % 4;
        if (arrIdx < 0) {
            arrIdx = 4 + arrIdx;
        }

        //์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ
        currentX += arrow[arrIdx][0];
        currentY += arrow[arrIdx][1];
       
        if ((currentX < 0 || currentX >= N) ||(currentY < 0 || currentY >= N))
            break;
        if (board[currentY][currentX] == 1)
            break;

        if (board[currentY][currentX] == 2) {
            //๋งŒ์•ฝ ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋‹ค๋ฉด
            point.clear();
            point.push_back(currentY);
            point.push_back(currentX);
            body.push_front(point);

            for (size_t i = 0; i < body.size(); i++) {
                board[body[i][0]][body[i][1]] = 1;
            }
        }
        else {
            //๋งจ๋์˜ ๊ฐ’์˜ ์ž๋ฆฌ๋ฅผ 0์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ
            board[body.back()[0]][body.back()[1]] = 0;
            //์ฒ˜์Œ์˜ ๊ฐ’์„ ๋’ค๋กœ ๋ฐ€์–ด์ฃผ๊ธฐ

            for (size_t  i = body.size() - 1; i >0 ; i--) {
                int temp = body[i-1][0];
                body[i][0] = temp;
                temp = body[i-1][1];
                body[i][1] = temp;
            }

            //์ฒซ๋ฒˆ์งธ ๋จธ๋ฆฌ์›€์ง์ด๊ธฐ
            body[0][0]= currentY;
            body[0][1]= currentX;

            for (size_t i = 0; i < body.size(); i++) {
                board[body[i][0]][body[i][1]] = 1;
            }
        }

        time++;
    }

    cout << time + 1;

    //ํ• ๋‹น ํ•ด์ œ
    for (int i = 0; i < N; i++)
        delete[] board[i];

    return 0;
}

 

*๊ฐ„๋‹จํ•œ ํ•ด์„ค*

ํ„ด์— ๊ด€ํ•œ ๊ฐœ๋…์ด ์ฒ˜์Œ์— ์žกํžˆ์ง€ ์•Š์•„์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ์ค„ ์•Œ๊ณ  ์‹œ๊ฐ„์„ ๋งŽ์ด ์‚ฌ์šฉํ–ˆ๋‹ค.

    Sleep(1000);
    system("cls");

    cout << "Time :" << time+1 << endl;
    //์ถœ๋ ฅํ•ด์„œ ํ™•์ธํ•˜๊ธฐ
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < N; j++) {
            cout << board[i][j] << " ";
        }
        printf("\n");
    }

์ด๋ถ€๋ถ„์˜ ์ฃผ์„์ฒ˜๋ฆฌ๋ฅผ ๋นผ๋ฉด ์–ด๋–ป๊ฒŒ ์‹คํ–‰๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์ œ์˜ 3๊ฐœ์˜ ์ถœ๋ ฅ ๊ณผ์ •์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

0์ด ๋นˆ์นธ์ด๊ณ  1์€ ๋ฑ€, 2๋Š” ์‚ฌ๊ณผ์ด๋‹ค.

 

์˜ˆ์ œ 1
์˜ˆ์ œ 2
์˜ˆ์ œ 3

์‚ฌ์‹ค ์—ฌ๊ธฐ๊นŒ์ง€ ์™€์„œ ์˜ˆ์ œ๋ฅผ ๋„ฃ์–ด๋ณด์•˜์„ ๋•Œ ์ œ์ถœ์„ ํ•˜๋‹ˆ๊นŒ ํ‹€๋ฆฐ๊ฒƒ์œผ๋กœ ๋‚˜์™”์—ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ํ•ด๋ณด์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ๋ฐ ๋ฐ˜๋ก€ ์ผ€์ด์Šค๋ฅผ ๋ชจ์•„๋†“์€ ์‚ฌ์ดํŠธ๋ฅผ ์ฐพ์•˜๋‹ค.

https://www.acmicpc.net/board/view/56469

 

๊ธ€ ์ฝ๊ธฐ - ๋ฑ€ ๋ฌธ์ œ ๋ฐ˜๋ก€๋ชจ์Œ์ž…๋‹ˆ๋‹ค

๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

www.acmicpc.net

๋‚˜์˜ ๊ฒฝ์šฐ ๋งจ ์ฒ˜์Œ ๋ฐ˜๋ก€ ์ผ€์ด์Šค์˜ 5๋ฒˆ์งธ๊นŒ์ง€ ํ†ต๊ณผ๋ฅผ ํ•˜๋‹ˆ ํ†ต๊ณผ๋ฅผ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

๋‹ค๋ฅธ ๋ถ„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐพ์•„๋ณด๋‹ˆ ์ด๋ถ„๊บผ๊ฐ€ ๊น”๋”ํ•˜๊ฒŒ ์ •๋ฆฌ๋˜์–ด ์žˆ์—ˆ๋‹ค.

๋‚ด ์ฝ”๋“œ๋Š” for๋ฌธ์„ ๋งŽ์ด ์“ฐ๋Š”๋ฐ for๋ฌธ์„ ๋งŽ์ด ์“ฐ์ง€ ์•Š๋„๋ก ์ƒ๊ฐํ•˜๋Š” ํž˜์„ ์ข€ ๋” ๊ธธ๋Ÿฌ์•ผ๊ฒ ๋‹ค.

https://velog.io/@nacean/%EB%B0%B1%EC%A4%803190-%EB%B1%80-C-%ED%92%80%EC%9D%B4

 

๋ฐฑ์ค€[3190] ๋ฑ€ C++ ํ’€์ด

์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ๊ตฌํ˜„ํ•  ์ค„ ์•ˆ๋‹คํ๋ฅผ ์‚ฌ์šฉํ•  ์ค„ ์•ˆ๋‹ค๋ฑ€์˜ ๋ชธํ†ต์˜ ์ฒ˜์Œ๊ณผ ๋์„ ์ €์žฅํ•ด์ฃผ๊ธฐ ์œ„ํ•ด queue๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์‹œ๊ฐ„๋งˆ๋‹ค ๋ฐฐ์—ด์„ ์ฑ„ํฌํ•˜์—ฌ, D ํ˜น์€ L์ผ ๊ฒฝ์šฐ ๋ฐฉํ–ฅ ํšŒ์ „์„ ํ•œ๋‹คwhile๋ฌธ์„

velog.io

 

 

 

*์ด ๋ฐฉ๋ฒ•๋งŒ์ด ๋งž๋Š” ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ข‹๊ณ  ๋น ๋ฅธ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค ํ™”์ดํŒ…! '0'/*

๋ฐ˜์‘ํ˜•
728x90

๋ฌธ์ œ

1์—์„œ๋ถ€ํ„ฐ 6๊นŒ์ง€์˜ ๋ˆˆ์„ ๊ฐ€์ง„ 3๊ฐœ์˜ ์ฃผ์‚ฌ์œ„๋ฅผ ๋˜์ ธ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ทœ์น™์— ๋”ฐ๋ผ ์ƒ๊ธˆ์„ ๋ฐ›๋Š” ๊ฒŒ์ž„์ด ์žˆ๋‹ค.

  1. ๊ฐ™์€ ๋ˆˆ์ด 3๊ฐœ๊ฐ€ ๋‚˜์˜ค๋ฉด 10,000์›+(๊ฐ™์€ ๋ˆˆ)×1,000์›์˜ ์ƒ๊ธˆ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค. 
  2. ๊ฐ™์€ ๋ˆˆ์ด 2๊ฐœ๋งŒ ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์—๋Š” 1,000์›+(๊ฐ™์€ ๋ˆˆ)×100์›์˜ ์ƒ๊ธˆ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค. 
  3. ๋ชจ๋‘ ๋‹ค๋ฅธ ๋ˆˆ์ด ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ์—๋Š” (๊ทธ ์ค‘ ๊ฐ€์žฅ ํฐ ๋ˆˆ)×100์›์˜ ์ƒ๊ธˆ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.  

์˜ˆ๋ฅผ ๋“ค์–ด, 3๊ฐœ์˜ ๋ˆˆ 3, 3, 6์ด ์ฃผ์–ด์ง€๋ฉด ์ƒ๊ธˆ์€ 1,000+3×100์œผ๋กœ ๊ณ„์‚ฐ๋˜์–ด 1,300์›์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค. ๋˜ 3๊ฐœ์˜ ๋ˆˆ์ด 2, 2, 2๋กœ ์ฃผ์–ด์ง€๋ฉด 10,000+2×1,000 ์œผ๋กœ ๊ณ„์‚ฐ๋˜์–ด 12,000์›์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค. 3๊ฐœ์˜ ๋ˆˆ์ด 6, 2, 5๋กœ ์ฃผ์–ด์ง€๋ฉด ๊ทธ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’์ด 6์ด๋ฏ€๋กœ 6×100์œผ๋กœ ๊ณ„์‚ฐ๋˜์–ด 600์›์„ ์ƒ๊ธˆ์œผ๋กœ ๋ฐ›๊ฒŒ ๋œ๋‹ค.

3๊ฐœ ์ฃผ์‚ฌ์œ„์˜ ๋‚˜์˜จ ๋ˆˆ์ด ์ฃผ์–ด์งˆ ๋•Œ, ์ƒ๊ธˆ์„ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑ ํ•˜์‹œ์˜ค.

 

 

์ž…๋ ฅ 1

3 3 6

์ถœ๋ ฅ 2

1300

 

์ž…๋ ฅ 2

2 2 2

์ถœ๋ ฅ 2

12000

 

์ž…๋ ฅ 3

6 2 5

์ถœ๋ ฅ 3

600

 

 

์ฝ”๋“œ

#include<iostream>

using namespace std;

bool equals(int rValue,int lValue, int* outValue) {
    if (rValue == lValue) {
        *outValue = rValue;
        return true;
    }
    else
        return false;
}

int main() {
    
    int firstDice, secondDice, thirdDice;
    int value=0;
    cin >> firstDice >> secondDice >> thirdDice;
    
    if (firstDice == secondDice&& secondDice == thirdDice) {     //๋งŒ์•ฝ ์„ธ๊ฐœ๊ฐ€ ๊ฐ™์€ ๊ฐ’์ด๋ฉด
        cout << 10000 + firstDice * 1000;
    }
    else if (equals(firstDice,secondDice,&value)
        || equals(secondDice, thirdDice, &value)
        || equals(firstDice, thirdDice, &value)) {     //๋งŒ์•ฝ ๋‘๊ฐœ๊ฐ€ ๊ฐ™์€ ๊ฐ’์ด๋ฉด
        cout<<1000+ value *100;
    }
    else {
        //๊ทธ ์ค‘ ๊ฐ€์žฅ ํฐ๋ˆˆ
        value = max(max(firstDice, secondDice), thirdDice);
        cout << value * 100;
    }

    return 0;
}

 

*๊ฐ„๋‹จํ•œ ํ•ด์„ค*

๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ์—์„œ if๋ฌธ ์ฃผ์ œ๋กœ ์ถ”๊ฐ€ ๋ถ„๋ฅ˜๋œ ๋ฌธ์ œ์—ฌ์„œ ํ’€์–ด๋ณด์•˜๋‹ค.

๋ง๊ทธ๋Œ€๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ if-else if-else๋ฌธ์„ ํ†ตํ•˜์—ฌ ์ด 3๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•˜๋ฉด ๋œ๋‹ค.

 if (firstDice == secondDice&& secondDice == thirdDice)

์ด๋ถ€๋ถ„์€ ์ฒซ๋ฒˆ์งธ ์ฃผ์‚ฌ์œ„์™€ ๋‘๋ฒˆ์งธ ์ฃผ์‚ฌ์œ„์˜ ์ˆซ์ž๊ฐ€ ๊ฐ™๊ณ  ๋‘๋ฒˆ์งธ ์ฃผ์‚ฌ์œ„์™€ ์„ธ๋ฒˆ์งธ ์ฃผ์‚ฌ์œ„์˜ ์ˆซ์ž๊ฐ€ ๊ฐ™์„๋•Œ, 'A์™€ B๊ฐ€ ๊ฐ™๊ณ  B์™€ C๊ฐ€ ๊ฐ™์œผ๋ฉด A์™€ C๋Š” ๊ฐ™๋‹ค'๋ผ๋Š” ๊ณต๋ฆฌ๋ฅผ ํ†ตํ•ด ๋‘๊ฐ€์ง€์˜ ์›๋ฆฌ๊ฐ€ true๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์„ธ ๊ฐ€์ง€์˜ ๊ฐ’์ด ๋ชจ๋‘ ๊ฐ™์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

bool equals(int rValue,int lValue, int* outValue) {
    if (rValue == lValue) {
        *outValue = rValue;
        return true;
    }
    else
        return false;
}

equals()ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ else if๋ฌธ ์•ˆ์—์„œ ๋งŒ์•ฝ ๋‘๊ฐœ๊ฐ€ ๊ฐ™์€ ๊ฐ’์ด๋ฉด value์— ๊ทธ ๊ฐ’์„ ์ง‘์–ด๋„ฃ์–ด์„œ ์ถœ๋ ฅํ• ๋•Œ ์“ธ์ˆ˜ ์žˆ๊ฒŒ๋” ์ œ์ž‘ํ•˜์˜€๋‹ค. ๊ทธ์ค‘ outValue๋งŒ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” rValue์™€ lValue์˜ ๊ฒฝ์šฐ ์–•์€ ๋ณต์‚ฌ๋ฅผ ํ†ตํ•ด ์ˆซ์ž๊ฐ’๋งŒ ๋“ค๊ณ ์™€์„œ ๋น„๊ตํ•˜๋ฉด ๋˜์ง€๋งŒ outValue์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ฐ’์„ ๋„ฃ์–ด์ค˜์•ผํ•˜๊ธฐ๋•Œ๋ฌธ์— ๊นŠ์€ ๋ณต์‚ฌ๊ฐ€ ํ•„์š”ํ•ด์„œ ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

else {
        //๊ทธ ์ค‘ ๊ฐ€์žฅ ํฐ๋ˆˆ
        value = max(max(firstDice, secondDice), thirdDice);
        cout << value * 100;
    }

๋งˆ์ง€๋ง‰์œผ๋กœ ์„ธ๊ฐœ์˜ ๊ฐ’์ด ๋ชจ๋‘ ๋‹ค๋ฅธ ๊ฒฝ์šฐ max()ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋จผ์ € ์ฒซ๋ฒˆ์งธ ์ˆ˜์™€ ๋‘๋ฒˆ์งธ ์ˆ˜์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜๊ณ , ๊ทธ ๋‹ค์Œ ๋น„๊ตํ•œ ํฐ ๊ฐ’๊ณผ ์„ธ๋ฒˆ์งธ ์ˆ˜์˜ ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ œ์ผ ํฐ ์ˆ˜๋ฅผ value์— ๋„ฃ์–ด์„œ ์ถœ๋ ฅํ•˜๋„๋ก ํ•˜์˜€๋‹ค.

 

 

 

*์ด ๋ฐฉ๋ฒ•๋งŒ์ด ๋งž๋Š” ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ข‹๊ณ  ๋น ๋ฅธ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค ํ™”์ดํŒ…! '0'/*

๋ฐ˜์‘ํ˜•
728x90

๋ฌธ์ œ

์ฒซ์งธ ์ค„์— ์ •์ ์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1,000), ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜ M(1 ≤ M ≤ 10,000), ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•  ์ •์ ์˜ ๋ฒˆํ˜ธ V๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ M๊ฐœ์˜ ์ค„์—๋Š” ๊ฐ„์„ ์ด ์—ฐ๊ฒฐํ•˜๋Š” ๋‘ ์ •์ ์˜ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์–ด๋–ค ๋‘ ์ •์  ์‚ฌ์ด์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ„์„ ์ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๊ฐ„์„ ์€ ์–‘๋ฐฉํ–ฅ์ด๋‹ค.

 

 

์ž…๋ ฅ

4 5 1
1 2
1 3
1 4
2 4
3 4

์ถœ๋ ฅ

1 2 4 3
1 2 3 4

 

์ฝ”๋“œ

#include<iostream>
#include<vector>
#include<queue>
#include<string>
#include<algorithm>
using namespace std;

// 1260๋ฒˆ DFS์™€ BFS

//๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰
void dfs(vector<int> inputGraph[], bool *visited,int index) {
	visited[index] = true;		//๋ฐฉ๋ฌธํ–ˆ์Œ์„ ํ‘œ์‹œ
	cout << index<<" ";
	//dfs ํƒ์ƒ‰ ์ˆœ์„œ
	int grphSize = inputGraph[index].size();
	for (int i = 0; i < grphSize; i++) {
		int connectIdx = inputGraph[index][i];
		if (!visited[connectIdx])
			dfs(inputGraph, visited, connectIdx);
	}
}

//๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰
void bfs(vector<int> inputGraph[],bool *visited,int index) {
	queue<int> que;
	que.push(index);
	visited[index] = true;
	//bfs ํƒ์ƒ‰ ์ˆœ์„œ
	while (!que.empty()) {
		int visitIdx = que.front();
		que.pop();
		cout << visitIdx<<" ";
		int grphSize = inputGraph[visitIdx].size();
		for (int i = 0; i < grphSize; i++) {
			//๋ฐฉ๋ฌธํ•œ Idx์™€ ์—ฐ๊ฒฐ๋œ ์›์†Œ๋“ค์„ que์— ๋„ฃ๊ธฐ
			int connectIdx = inputGraph[visitIdx][i];
			if (!visited[connectIdx]) {		//๋งŒ์•ฝ ์—ฐ๊ฒฐ๋œ ์›์†Œ๋ฅผ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด
				que.push(connectIdx);		//๋ฐฉ๋ฌธํ•  ๋…ธ๋“œ๋กœ ์„ ์ •
				visited[connectIdx] = true;
			}
		}
	}
	
	
}

int main() {

	int N, M, V;		//์ •์ ์˜ ๊ฐœ์ˆ˜, ๊ฐ„์„ ์˜ ๊ฐœ์ˆ˜, ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•  ์ •์ ์˜ ๋ฒˆํ˜ธ

	cin >> N >> M >> V;

	int size = N + 1;
	//N๊ฐœ๋งŒํผ์˜ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ
	bool* visited = new bool[size] {false, };			//๋ฐฉ๋ฌธ ์œ ๋ฌด๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฐ์—ด
	vector<int>* graph = new vector<int>[size];
	graph->push_back(1);

	for (int i = 0; i < M; i++) {
		int origin, connect;
		cin >> origin >> connect;
		graph[origin].push_back(connect);
		graph[connect].push_back(origin);
	}

	//์ •๋ ฌ
	for (int i = 0; i < size; i++) {
		sort(graph[i].begin(),graph[i].end());
	}

	dfs(graph,visited, V);
	cout << endl;
	visited = new bool[size]{ false, };		//๋ฐฉ๋ฌธ์œ ๋ฌด๋ฅผ ๋‹ค์‹œ ์ดˆ๊ธฐํ™”ํ•ด์คŒ(์žฌ์‚ฌ์šฉ ์œ„ํ•ด)
	bfs(graph, visited,V);

	delete [] visited;		//๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ 
	//vector ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ
	graph->clear();
	vector<int>().swap(*graph);

	return 0;
}

 

*๊ฐ„๋‹จํ•œ ํ•ด์„ค*

DFS์™€ BFS๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. DFS๋Š” ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•˜๋„๋ก ์ž‘์„ฑํ•˜์˜€๊ณ , BFS๋Š” ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋ฅผ ํ†ตํ•ด์„œ ํ•ด๋‹น ๋…ธ๋“œ์™€ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ ์ค‘ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ๋งŒ ๋‹ค์‹œ ํƒ์ƒ‰ํ•ด์„œ ํƒ์ƒ‰์ด ๋๋‚˜๋ฉด ์ข…๋ฃŒ๋˜๋„๋ก ์ž‘์„ฑํ•˜์˜€๋‹ค. DFS์™€ BFS์˜ ๊ฒฝ์šฐ 

https://better-tomorrow.tistory.com/entry/DFS-BFS-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

DFS & BFS ์ดํ•ดํ•˜๊ธฐ ๋ฐ ๊ตฌํ˜„(C++)

DFS : Depth First Search(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰) - ๊ทธ๋ž˜ํ”„ ์ „์ฒด๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜. (์™„๋ฒฝํžˆ ํƒ์ƒ‰) - ์‹œ์ž‘์ ๋ถ€ํ„ฐ ๋‹ค์Œ branch๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— ํ•ด๋‹น branch๋ฅผ ์™„๋ฒฝํ•˜๊ฒŒ ํƒ์ƒ‰ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋Š” ๋ฐฉ๋ฒ•. - [์žฌ๊ท€ํ•จ์ˆ˜]

better-tomorrow.tistory.com

ํ•ด๋‹น ํฌ์ŠคํŒ…์„ ํ†ตํ•ด ์ž์„ธํ•˜๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์—ˆ๋‹ค. DFS์™€ BFS์— ๋Œ€ํ•ด ์•Œ๊ณ ์‹ถ์œผ๋ฉด ์œ„์˜ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด ์ข‹์„๋“ฏํ•˜๋‹ค.

for (int i = 0; i < M; i++) {
    int origin, connect;
    cin >> origin >> connect;
    graph[origin].push_back(connect);
    graph[connect].push_back(origin);
}

์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์„ ์ž…๋ ฅ๋ฐ›๋Š” ๊ณผ์ •์—์„œ ์—ฐ๊ฒฐ๋œ 2๊ฐœ๋ฅผ ์ž…๋ ฅ ๋ฐ›์„์‹œ ์„œ๋กœ ๊ฐ์ž์˜ ๋…ธ๋“œ์— ์—ฐ๊ฒฐ ์ •๋ณด๋ฅผ ์ž…๋ ฅ์‹œํ‚ค๋„๋ก ํ•œ๋‹ค.

//์ •๋ ฌ
for (int i = 0; i < size; i++) {
    sort(graph[i].begin(),graph[i].end());
}

์ž…๋ ฅ์‹œํ‚จ ์ •๋ณด๋“ค์„ sort๋ฅผ ํ†ตํ•ด ์ •๋ ฌ์„ ์‹œ์ผœ์ค€๋‹ค. ์ •๋ ฌ์„ ํ•˜์ง€ ์•Š์œผ๋ฉด ์›ํ•˜๋Š”๋Œ€๋กœ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ค์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ ฌ์„ ๊ผญ ํ•ด์ค€๋‹ค.

 

 

 

*์ด ๋ฐฉ๋ฒ•๋งŒ์ด ๋งž๋Š” ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ข‹๊ณ  ๋น ๋ฅธ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค ํ™”์ดํŒ…! '0'/*

๋ฐ˜์‘ํ˜•
728x90

๋ฌธ์ œ

์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ํ๋ฅผ ๊ตฌํ˜„ํ•œ ๋‹ค์Œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ช…๋ น์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

๋ช…๋ น์€ ์ด ์—ฌ์„ฏ ๊ฐ€์ง€์ด๋‹ค.

  • push X: ์ •์ˆ˜ X๋ฅผ ํ์— ๋„ฃ๋Š” ์—ฐ์‚ฐ์ด๋‹ค.
  • pop: ํ์—์„œ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ๋นผ๊ณ , ๊ทธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ํ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • size: ํ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • empty: ํ๊ฐ€ ๋น„์–ด์žˆ์œผ๋ฉด 1, ์•„๋‹ˆ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • front: ํ์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ํ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • back: ํ์˜ ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ ํ์— ๋“ค์–ด์žˆ๋Š” ์ •์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” -1์„ ์ถœ๋ ฅํ•œ๋‹ค.

์ž…๋ ฅ

15
push 1
push 2
front
back
size
empty
pop
pop
pop
size
empty
pop
push 3
empty
front

์ถœ๋ ฅ

1
2
2
0
1
2
-1
0
1
-1
0
3

 

์ฝ”๋“œ

#include<iostream>
#include<string>
using namespace std;

// 10845๋ฒˆ ํ

//ํ ๊ตฌํ˜„
class QueueS {
public:
	int front;
	int back;
	int size;
	int *values;		//๋ชจ๋“  ๊ฐ’๋“ค์„ ๋‹ด์€ ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ

	//์ƒ์„ฑ์ž
	QueueS() {
		size = 10001;		//ํ์˜ ์‚ฌ์ด์ฆˆ 
		values = new int[size];
		front = 0;
		back=0;
	}
	//์†Œ๋ฉธ์ž
	~QueueS() {
		delete[] values;
	}

	void push(int data) {
		if ((back+1)%size!=front) {
			values[back] = data;
			back = (back + 1) % size;
		}
	}

	void pop() {
		front = (front + 1) % size;
	}

	bool empty() {
		if (back == front)
			return true;
		else
			return false;
	}
};

QueueS st;

void getNumSize(string str) {
	int temp;

	if (str == "back") {
		if (st.back - st.front != 0) {
			cout << st.values[st.back - 1] << "\n";
		}
		else cout << "-1\n";
	}
	else if (str == "front") {
		if (st.back - st.front != 0) {
			cout << st.values[st.front] << "\n";
		}
		else cout << "-1\n";
	}
	else if (str == "size") {
		cout << st.back-st.front << "\n";
	}
	else if (str == "empty") {
		cout << ((st.back - st.front==0)?true:false) << "\n";
	}
	else if (str == "pop") {
		if (st.back - st.front!=0) {
			cout << st.values[st.front] << "\n";
			st.pop();
		}
		else {
			cout << "-1\n";
		}
	}
	else if (str == "push")
	{
		cin >> temp;
		st.push(temp);
	}
}

int main() {

	int n;
	string str;
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> str;
		getNumSize(str);
	}

	return 0;
}

 

*๊ฐ„๋‹จํ•œ ํ•ด์„ค*

ํ๋ฅผ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ํ ํด๋ž˜์Šค์˜ front,back์€ ์ผ์ข…์˜ ๋งจ ์•ž์˜ index ๋ฒˆํ˜ธ๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์ด๊ณ , back์€ ๋งจ ๋’ค์˜ index๋ฒˆํ˜ธ๋ฅผ ๋งํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  int* values๋ฅผ ํ†ตํ•ด์„œ ์ž…๋ ฅ ๋ฐ›์€ ๊ฐ’๋“ค์„ back์„ ๋Š˜๋ ค๊ฐ€๋ฉด์„œ ์ €์žฅํ•˜์˜€๋‹ค.

 

 

C ๊ตฌ์กฐ์ฒด์™€ C++์˜ queue ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜์‹  ๋ถ„๋„ ์žˆ์—ˆ๋‹ค.

https://blockdmask.tistory.com/119

 

[๋ฐฑ์ค€ 10845] ํ (C, C++ Queue)

์•ˆ๋…•ํ•˜์„ธ์š”.BlockDMask ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์˜๊ตญ์— ์˜จ์ง€ ์ดํ‹€์งธ ๋˜๋Š”๋‚ ์ž…๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์›ํ•˜๋Š” ๋ฐ๋กœ ์ €๋Š” ์˜๊ตญ ๋Ÿฐ๋˜ ๋ฆฌ์  ํŠธ ๊ณต์› ๋ฒค์น˜์— ์•‰์•„์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์ง‘์ค‘์ด ์•ˆ๋˜์„œ; ์‰ฌ์šด ์ž

blockdmask.tistory.com

๋‚ด ์ฝ”๋“œ๋Š” ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๋Š”๋ฐ ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ๊ธธ์–ด์„œ.. ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ฐธ๊ณ ํ•˜๋‹ค ๋ณด๋‹ˆ ์•„๋ฌด๋ž˜๋„ cout๋ฌธ์ œ๋„ ์žˆ์„ ๊ฒƒ ๊ฐ™์•„์„œ printf๋กœ ํ•œ๋ฒˆ ๋‹ค ๋ฐ”๊ฟ”๋ณด์•˜๋‹ค.

 

๊ทธ๋ ‡๊ฒŒ๊นŒ์ง€ ์˜ํ–ฅ์„ ์ค€๊ฑด ์•„๋‹Œ๊ฐ€๋ณด๋‹ค ์‹ถ์–ด์„œ ์ข€ ๋” ์ฐพ์•„๋ณด๋‹ˆ

https://coding-insider.tistory.com/entry/cin-cout-%EC%9E%85%EC%B6%9C%EB%A0%A5-%EC%86%8D%EB%8F%84-%EB%B9%A0%EB%A5%B4%EA%B2%8C%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

cin, cout ์ž…์ถœ๋ ฅ ์†๋„ ๋น ๋ฅด๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•

scanf์™€ cin์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์†๋„๋ฉด์—์„œ ํฐ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค. 1 2 3 ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cs + endl ๋ณด๋‹ค..

coding-insider.tistory.com

cin์˜ ์†๋„๊ฐ€ ์ƒ๊ฐ๋ณด๋‹ค ์—„์ฒญ ๋А๋ฆฌ๋‹ค๋Š”๊ฒƒ! 

ios_base :: sync_with_stdio(false); 
cin.tie(NULL); 
cout.tie(NULL);

์ด ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ๋นจ๋ผ์ง„๋‹ค๊ณ ๋Š” ํ•˜๋‚˜ scanf,printf์™€ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๊ณ  ์‹ฑ๊ธ€์“ฐ๋ ˆ๋“œ ์˜์—ญ์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์„œ ์‹ค์ œ ์ฝ”๋“œ ์˜์—ญ์—์„œ๋Š” ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ง€์–‘ํ•˜๋ผ๊ณ  ํ•œ๋‹ค.

์ผ๋‹จ ์‹ฑ๊ธ€ ์“ฐ๋ ˆ๋“œ ์˜์—ญ์ด๋‹ˆ ์Ÿค๋“ค์„ ์ถ”๊ฐ€ํ•ด์„œ ํ•œ๋ฒˆ ๋Œ๋ ค๋ณด์•˜๋‹ค.

 

์†๋„๋Š” ๋นจ๋ผ์กŒ์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋Š˜์–ด๋‚ฌ๋‹ค.. ๊ทธ๋Ÿฌ๋ฉด scanf,printf๋กœ ๋‹ค ๋ฐ”๊ฟ”๋ณด๊ฒ ๋‹ค.

 

๊ฒฐ๊ณผ์ ์œผ๋กœ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋„ ์ค„์–ด๋“ค์—ˆ๋‹ค. ์•„๋ฌด๋ž˜๋„ scanf,printf๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์•ž์œผ๋กœ๋„ ์จ์•ผ๊ฒ ๋‹ค.

 

์ฝ”๋“œ(scanf,printf)

#include<iostream>
#include<string.h>
using namespace std;

// 10845๋ฒˆ ํ
//ํ ๊ตฌํ˜„
class QueueS {
public:
	int front;
	int back;
	int size;
	int *values;		//๋ชจ๋“  ๊ฐ’๋“ค์„ ๋‹ด์€ ๋ฐฐ์—ด์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ

	//์ƒ์„ฑ์ž
	QueueS() {
		size = 10001;		//ํ์˜ ์‚ฌ์ด์ฆˆ 
		values = new int[size];
		front = 0;
		back = 0;
	}
	//์†Œ๋ฉธ์ž
	~QueueS() {
		delete[] values;
	}

	void push(int data) {
		if ((back + 1) % size != front) {
			values[back] = data;
			back = (back + 1) % size;
		}
	}

	void pop() {
		front = (front + 1) % size;
	}

	bool empty() {
		if (back == front)
			return true;
		else
			return false;
	}
};

QueueS st;

void getNumSize(char str[]) {
	int temp;

	if (!strcmp(str, "back")) {
		if (st.back - st.front != 0) {
			printf("%d\n", st.values[st.back - 1]);
		}
		else printf("-1\n");
	}
	else if (!strcmp(str,"front")) {
		if (st.back - st.front != 0) {
			printf("%d\n", st.values[st.front]);
		}
		else printf("-1\n");
	}
	else if (!strcmp(str ,"size")) {
		printf("%d\n", st.back - st.front);
	}
	else if (!strcmp(str,"empty")) {
		printf("%d\n", ((st.back - st.front == 0) ? true : false));
	}
	else if (!strcmp(str, "pop")) {
		if (st.back - st.front != 0) {
			printf("%d\n", st.values[st.front]);
			st.pop();
		}
		else {
			printf("-1\n");
		}
	}
	else if (!strcmp(str,"push"))
	{
		scanf("%d", &temp);
		st.push(temp);
	}
}

int main() {

	int n;
	char str[6];
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%s", str);
		getNumSize(str);
	}

	return 0;
}

 

*์ด ๋ฐฉ๋ฒ•๋งŒ์ด ๋งž๋Š” ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ข‹๊ณ  ๋น ๋ฅธ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค ํ™”์ดํŒ…! '0'/*

๋ฐ˜์‘ํ˜•
728x90

๋ฌธ์ œ

์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๋œ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ์ด ๋‹จ์–ด์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋œ ์•ŒํŒŒ๋ฒณ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ์•„๋‚ด๋А ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋Œ€,์†Œ๋ฌธ์ž ๊ตฌ๋ถ„ X

 

์˜ˆ์ œ ์ž…์ถœ๋ ฅ

์ž…๋ ฅ

Mississipi

์ถœ๋ ฅ

?

 

์ฝ”๋“œ

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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
using namespace std;
 
int main() {
   char word[1000001]={" ",};
   char mostAlpha[26]={" ",};   //์•ŒํŒŒ๋ฒณ ๊ฐฏ์ˆ˜๊ฐ€ 26๊ฐœ์ด๋ฏ€๋กœ
   int repetNum[26]={0,};      //๋Œ€๋ฌธ์ž ์†Œ๋ฌธ์ž ํ•ฉํ•˜๋ฉด 52
   int idx=0,alphaCount=0;
   bool isIncrease=false;
   scanf("%s",word);
   while(word[idx]!='\0'){
           int idxSame=0;
           if(word[idx]>=97) word[idx]-=32;        //์†Œ๋ฌธ์ž์ผ ๊ฒฝ์šฐ ์•„์Šคํ‚ค์ฝ”๋“œ 32๋ฅผ ๋นผ์ฃผ์–ด ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜
        if(alphaCount>=1){
             for(int i=0;i<alphaCount;i++){
                //๊ฐ™์€ ๊ฒƒ ์žˆ๋Š”์ง€ ์ฒดํฌ ๋ฐ ๊ฐ™์€ ์ž๋ฆฌ์˜ ๋ฐฐ์—ด ๋ฒˆํ˜ธ ์ €์žฅ
                if(word[idx]==mostAlpha[i]){
                  isIncrease=false;
                  idxSame=i;
                  break;
                }
                else{
                   isIncrease=true;
                }
             }
             if(isIncrease){        //for๋ฌธ์ด ๋๋‚˜๊ณ  alphaCount๋ฅผ ๋”ํ•ด์ฃผ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ
                mostAlpha[alphaCount]=word[idx];
                repetNum[alphaCount]=1;
                 alphaCount++;        //๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋” ๋งŽ์€ for๋ฌธ์„ ๋ฐœ์ƒ์‹œํ‚ด
             }
             else
             {
                  repetNum[idxSame]++;    //์•„๋‹ˆ๋ฉด์€ ๊ฐ™์€๊ฒƒ์— ++ํ•ด์คŒ
             }
        }
        else
        {
             mostAlpha[0]=word[idx];
             repetNum[0]=1;
             alphaCount++;
        }
        idx++;
   }
   //์ œ์ผ ์ˆซ์ž๊ฐ€ ํฐ ๊ฒƒ์„ ๋ฝ‘์Œ
   int mostNum=0,mostNumIdx=0;
   bool isDupli=false;
   for(int i=0;i<alphaCount;i++){
      if(mostNum<repetNum[i]){ 
         mostNum=repetNum[i];
         isDupli=false;            //์ตœ๋Œ“๊ฐ’์ด ๋ฐ”๋€”๊ฒฝ์šฐ false
         mostNumIdx=i;
      }
      else if(mostNum==repetNum[i]&&repetNum[i]>1){
         isDupli=true;            //๊ฐ™์€ ์ตœ๋Œ€๊ฐ’์ด ์žˆ๋‹ค๋ฉด true, ํ•˜์ง€๋งŒ 1์ดˆ๊ณผ์—ฌ์•ผํ•จ
      }
   }
   
   if(isDupli){
      printf("?");
   }
   else{
          printf("%c",mostAlpha[mostNumIdx]);
   }
   return 0;
}
cs

*๊ฐ„๋‹จํ•œ ํ•ด์„ค*

์•ŒํŒŒ๋ฒณ๊ฐฏ์ˆ˜๋งŒํผ์˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ๋ฌธ์ž์—ด์„ ์ฒดํฌํ•˜์—ฌ ๊ฐฏ์ˆ˜๋งŒํผ ์ €์žฅํ•œ ํ›„ 45~56๋ฒˆ ๋ผ์ธ์—์„œ ์ œ์ผ ํฐ ์•ŒํŒŒ๋ฒณ์„ ๋ฝ‘๋Š”๋‹ค

๋‚˜๋จธ์ง€๋Š” ์ฃผ์„์„ ํ†ตํ•ด ์„ค๋ช…ํ•ด๋†“์•˜๋‹ค

์ด ์ฝ”๋“œ๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅธ ๋ฐฉ๋ฒ•์ด ์žˆ์ง€ ์•Š์„๊นŒ ์‹ถ๊ธดํ•˜๋‹ค

 

*๋ฉ”๋ชจ๋ฆฌ*

2840KB

*์‹œ๊ฐ„*

36ms

*์–ธ์–ด*

C++14

*์ฝ”๋“œ๊ธธ์ด*

1878B

*์ด ๋ฐฉ๋ฒ•๋งŒ์ด ๋งž๋Š” ์ •๋‹ต์€ ์•„๋‹™๋‹ˆ๋‹ค.

ํ›จ์”ฌ ์ข‹๊ณ  ๋น ๋ฅธ ๋‹ค๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค ํ™”์ดํŒ…! '0'/*

 

 

 

๋ฐ˜์‘ํ˜•

+ Recent posts