Tiny Bunny
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/C++

[c++] ๊ตฌ์กฐ์ฒด ๋ฐฑํ„ฐ ํ‘ธ์‹œ๋ฐฑ , ์ˆœ์„œ์Œ ๋„ฃ๊ธฐ /struct vector push_back

by soonybutter 2024. 7. 13.
728x90

 

 

๊ตฌ์กฐ์ฒด (struct)

 

: ๊ตฌ์กฐ์ฒด๋ž€ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž๋ฃŒํ˜•์„ ์ง€์ •ํ•จ.

์•„๋ž˜์™€ ๊ฐ™์ด POS๋ผ๋Š” ์ž๋ฃŒํ˜•์˜ ๊ตฌ์กฐ์ฒด๋ฅผ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

struct POS
{
  int y,x;
  string name;
  
};

 

 

 

 

๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„ ์ ‘๊ทผ

 

 POS a, b;
 cin >> a.x >> a.y >> b.x >> b.y;

:๋ฉ”์ธ ํ•จ์ˆ˜์—์„œ 

์œ„์™€ ๊ฐ™์ด POS๋ผ๋Š” ์ž๋ฃŒํ˜•์˜ ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ , 

'.'๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์œ„์— ๊ตฌ์กฐ์ฒด์— ํ˜•์„ฑํ•œ ๊ฐœ๋ณ„ ๋ฉค๋ฒ„์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

๊ตฌ์กฐ์ฒด์— ์ˆœ์„œ์Œ push_back 

 

์•„๋ž˜์™€ ๊ฐ™์ด ๊ตฌ์กฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ˆœ์„œ์Œ์„ vector์— push_back ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

case 01

#include <iostream>
#include <vector>
using namespace std;
struct POS
{
    int y, x;

};

int main()
{
    vector<POS>v;
    for (int i = 0; i < 5; i++)
    {
        int tmpY,tmpX;
        cin >> tmpY>>tmpX;
        
        v.push_back({ tmpY,tmpX });

    }
    return 0;
}

 

๋””๋ฒ„๊น…ํ•˜๋ฉด vector ์•ˆ์— ์ˆœ์„œ์Œ y,x์ด ๋“ค์–ด๊ฐ€์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

case 02

 

#include <iostream>
#include <vector>

using namespace std;

struct POS
{
    int y, x;

};


int main()
{
    vector<POS>v;

    for (int i = 0; i < 5; i++)
    {
        POS tmp;
        cin >> tmp.y >> tmp.x;

        v.push_back(tmp);

    }


    return 0;
}

 

๋””๋ฒ„๊น…ํ•˜๋ฉด ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ vector ์•ˆ์— ์ˆœ์„œ์Œ y,x์ด ๋“ค์–ด๊ฐ€์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

๊ตฌ์กฐ์ฒด ์˜ˆ์ œ
: ์ˆซ์ž 2๊ฐœ์™€ ์ด๋ฆ„์„ 5์Œ ์ž…๋ ฅ๋ฐ›๊ณ , ์ด๋ฆ„์˜ ๊ธธ์ด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋ผ.
(๋งŒ์•ฝ ์ด๋ฆ„์˜ ๊ธธ์ด๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ์—๋Š” ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ ํฐ ์ˆœ์„œ๋Œ€๋กœ, 
์ฒซ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ, ๋‘๋ฒˆ์งธ ์ˆซ์ž์ˆœ์œผ๋กœ ์ •๋ ฌํ•  ๊ฒƒ)

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

struct POS
{
    int y, x;

    string name;

};

bool compare(POS a, POS b)
{

    if (a.name.size() < b.name.size())
    {
        return true;
    }
    else if (a.name.size() == b.name.size())
    {
        if (a.y < b.y)
        {
            return true;
        }
        else if (a.y == b.y && a.x < b.x)
        {
            return true;
        }
    }
    else return false;

    return false;
}


int main()
{
    vector<POS>v;

    for (int i = 0; i < 5; i++)
    {
        POS tmp;
        cin >> tmp.y >> tmp.x >> tmp.name;

        v.push_back(tmp);

    }

    sort(v.begin(), v.end(), compare);


    return 0;

}

 

input ์˜ˆ์‹œ

 

๋””๋ฒ„๊น…ํ•ด๋ณด๋ฉด v ์•ˆ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์กฐ์ฒด๋กœ ํ‘ธ์‹œ๋ฐฑ๋ผ์„œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

 

 

 

 

 

 

 

ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด๋‚˜ ์ด์ƒํ•œ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ์ง€์ ํ•ด์ฃผ์„ธ์š”! 

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค :)

728x90

TOP

Designed by ํ‹ฐ์Šคํ† ๋ฆฌ