์ด ์˜์—ญ์„ ๋ˆ„๋ฅด๋ฉด ์ฒซ ํŽ˜์ด์ง€๋กœ ์ด๋™
caputdraconis ๋ธ”๋กœ๊ทธ์˜ ์ฒซ ํŽ˜์ด์ง€๋กœ ์ด๋™

caputdraconis

ํŽ˜์ด์ง€ ๋งจ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ€๊ธฐ

caputdraconis

๋„คํŠธ์›Œํฌ ๊ด€์ ์—์„œ์˜ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์„ ๊ณต๋ถ€ํ•˜๋Š” ์ค‘์ž…๋‹ˆ๋‹ค :)

[C++] ๋ฐฑ์ค€ BOJ 21939 ๋ฌธ์ œ ์ถ”์ฒœ ์‹œ์Šคํ…œ Version 1

  • 2021.11.18 11:00
  • ๐Ÿฅš๊ณ ๋ฆฌ์ฆ˜
๊ธ€ ์ž‘์„ฑ์ž: caputdraconis
๋ฐ˜์‘ํ˜•
/*
BOJ 21939 ๋ฌธ์ œ ์ถ”์ฒœ ์‹œ์Šคํ…œ Version 1 ์˜ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.
ํšจ์œจ์ ์ด์ง€ ์•Š์€ ํ’€์ด์ด๋‹ˆ,, ๋‹ค๋ฅธ ๋ถ„์˜ ํ’€์ด๋ฅผ ์ฐธ๊ณ ํ•˜์‹œ๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค..!
*/

๋ฌธ์ œ ๋งํฌ : https://www.acmicpc.net/problem/21939

 

21939๋ฒˆ: ๋ฌธ์ œ ์ถ”์ฒœ ์‹œ์Šคํ…œ Version 1

tony9402๋Š” ์ตœ๊ทผ ๊นƒํ—™์— ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๋ฝ‘์•„์„œ "๋ฌธ์ œ ๋ฒˆํ˜ธ, ๋‚œ์ด๋„"๋กœ ์ •๋ฆฌํ•ด๋†จ๋‹ค. ๊นƒํ—™์„ ์ด์šฉํ•˜์—ฌ ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. ๋งŒ๋“ค๋ ค๊ณ  ํ•˜๋Š” ๋ช…๋ น

www.acmicpc.net

 

 

์ •๋‹ต ์ฝ”๋“œ

#include <bits/stdc++.h>
using namespace std;

int main(void)
{
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);

    multiset<pair<int, int>> hard; // ๋‚œ์ด๋„ | ๋ฌธ์ œ๋ฒˆํ˜ธ
    map<int, int> Map;             // ๋ฌธ์ œ ๋ฒˆํ˜ธ | ๋‚œ์ด๋„

    int N, M, P, L;

    cin >> N;

    for (int i = 0; i < N; i++)
    {
        cin >> P >> L; // ๋ฌธ์ œ ๋ฒˆํ˜ธ | ๋‚œ์ด๋„

        hard.insert(make_pair(L, P));
        Map[P] = L;
    }

    cin >> M;

    for (int i = 0; i < M; i++)
    {
        string cmd;
        int arg1, arg2;
        cin >> cmd;
        if (cmd == "recommend")
        {
            cin >> arg1; // 1 or -1

            if (arg1 == 1)
            {
                // ๊ฐ€์žฅ ์–ด๋ ต๊ณ  ๋ฌธ์ œ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ€์žฅ ํฐ๊ฑฐ
                auto it = prev(hard.end());

                cout << it->second << "\n";
            }
            else
            {
                auto it = hard.begin();

                cout << it->second << "\n";
            }
        }
        else if (cmd == "add")
        {
            cin >> arg1 >> arg2; // ๋ฌธ์ œ ๋ฒˆํ˜ธ | ๋‚œ์ด๋„

            hard.insert(make_pair(arg2, arg1));
            Map[arg1] = arg2;
        }
        else
        {
            cin >> arg1;

            int lev = Map[arg1];

            auto it = hard.find(make_pair(lev, arg1));

            hard.erase(it);
        }
    }
}

 

recommend์™€ add ๊นŒ์ง€๋Š” multiset ๋งŒ์œผ๋กœ๋„ ์ถฉ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค. 

ํ•˜์ง€๋งŒ solved ๋ช…๋ น์€ ๋ฌธ์ œ ๋ฒˆํ˜ธ๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ๊ทธ ๋ฌธ์ œ ๋ฒˆํ˜ธ๋ฅผ second ๊ฐ’์œผ๋กœ ๊ฐ–๊ณ ์žˆ๋Š” pair๋ฅผ set ์•ˆ์—์„œ ์ฐพ์•„์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‚œ์ด๋„ 1๋ถ€ํ„ฐ 100๊นŒ์ง€ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ ค์„œ find ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ํŽธ์˜๋ฅผ ์œ„ํ•ด map์„ ์ด์šฉํ•˜์—ฌ key๋กœ ๋ฌธ์ œ ๋ฒˆํ˜ธ(P), value๋กœ ๋ฌธ์ œ์˜ ๋‚œ์ด๋„(L)์„ ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. 

 

 

pair multiset์˜ ๊ฒฝ์šฐ first ๊ฐ’์ด ๊ฐ™๋‹ค๋ฉด, second ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— recommend ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ๋•Œ

๊ฐ€์žฅ ์‰ฌ์šด ๋‚œ์ด๋„ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๋ฌธ์ œ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ๋ฌธ์ œ๋Š” multiset์˜ begin์— ์œ„์น˜ํ•˜๊ณ  ์žˆ์—ˆ๊ณ ,
๊ฐ€์žฅ ์–ด๋ ค์šด ๋‚œ์ด๋„ ์ค‘์—์„œ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ๋ฌธ์ œ๋Š” multiset์˜ end์— ์œ„์น˜ํ•˜๊ณ  ์žˆ์–ด์„œ ํ•ด๊ฒฐ์ด ์‰ฌ์› ์Šต๋‹ˆ๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€

์ด ๊ธ€ ๊ณต์œ ํ•˜๊ธฐ

  • ๊ตฌ๋…ํ•˜๊ธฐ

    ๊ตฌ๋…ํ•˜๊ธฐ

  • ์นด์นด์˜คํ†ก

    ์นด์นด์˜คํ†ก

  • ๋ผ์ธ

    ๋ผ์ธ

  • ํŠธ์œ„ํ„ฐ

    ํŠธ์œ„ํ„ฐ

  • Facebook

    Facebook

  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ

    ์นด์นด์˜ค์Šคํ† ๋ฆฌ

  • ๋ฐด๋“œ

    ๋ฐด๋“œ

  • ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ

    ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ

  • Pocket

    Pocket

  • Evernote

    Evernote

๋‹ค๋ฅธ ๊ธ€

  • [Algorithms] String(Pattern) Matching

    [Algorithms] String(Pattern) Matching

    2023.06.01
  • [Algorithms] Dynamic Programming

    [Algorithms] Dynamic Programming

    2023.05.26
  • [C++] ๊ฑฐ๋ฆฌ๋‘๊ธฐ ํ™•์ธํ•˜๊ธฐ(2021 ์นด์นด์˜ค ์ฑ„์šฉ์—ฐ๊ณ„ํ˜• ์ธํ„ด์‹ญ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ)

    [C++] ๊ฑฐ๋ฆฌ๋‘๊ธฐ ํ™•์ธํ•˜๊ธฐ(2021 ์นด์นด์˜ค ์ฑ„์šฉ์—ฐ๊ณ„ํ˜• ์ธํ„ด์‹ญ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ)

    2021.11.03
  • [Python] ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด(2021 ์นด์นด์˜ค ์ฑ„์šฉ์—ฐ๊ณ„ํ˜• ์ธํ„ด์‹ญ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ)

    [Python] ์ˆซ์ž ๋ฌธ์ž์—ด๊ณผ ์˜๋‹จ์–ด(2021 ์นด์นด์˜ค ์ฑ„์šฉ์—ฐ๊ณ„ํ˜• ์ธํ„ด์‹ญ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ)

    2021.11.03
๋‹ค๋ฅธ ๊ธ€ ๋” ๋‘˜๋Ÿฌ๋ณด๊ธฐ

์ •๋ณด

caputdraconis ๋ธ”๋กœ๊ทธ์˜ ์ฒซ ํŽ˜์ด์ง€๋กœ ์ด๋™

caputdraconis

  • caputdraconis์˜ ์ฒซ ํŽ˜์ด์ง€๋กœ ์ด๋™

๊ฒ€์ƒ‰

๋ฉ”๋‰ด

    ์นดํ…Œ๊ณ ๋ฆฌ

    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (168)
      • Cloud (3)
      • Computer Network (12)
      • Database (2)
      • Terraform (2)
      • ๐Ÿฅš๊ณ ๋ฆฌ์ฆ˜ (13)
      • ๊ฒ…๋ถ€๊ฒ…๋ถ€๐Ÿ™ƒ (10)
        • Naver CS50 ์ฝ”์นญ์Šคํ„ฐ๋”” (2)
        • Machine Learning (1)
        • Computing System (6)
      • ์–ธ์–ด&ํ”„๋ ˆ์ž„์›Œํฌ (20)
        • Python (4)
        • Django (10)
        • Node JS (1)
        • C++ (2)
        • Java (1)
        • Flutter (2)
      • Security (76)
        • WebHacking Study (11)
        • ์ง€์˜ฅ๋ฐฉ ์Šคํ„ฐ๋”” (22)
        • ์—ฌ๋ฆ„๋ฐฉํ•™ ์Šคํ„ฐ๋”” (2)
        • PWN Study (6)
        • SUA Reversing Study (3)
        • PWN (3)
        • WebHacking (20)
        • Reversing (4)
      • ์•Œ๊ณ  ์žˆ์œผ๋ฉด ๋„์›€๋˜์ง€ ์•Š์„๊นŒ,,? (23)
      • ์ผ์ƒ๋‹ค๋ฐ˜์‚ฌ (1)
      • ๊ทผํ™ฉ ์ •๋ฆฌ (1)
      • 42 Seoul (1)
        • Setting (1)

    ์ตœ๊ทผ ๊ธ€

    ์ธ๊ธฐ ๊ธ€

    ๋Œ“๊ธ€

    ๊ณต์ง€์‚ฌํ•ญ

    ์•„์นด์ด๋ธŒ

    ํƒœ๊ทธ

    • ์›นํ•ดํ‚น.kr
    • ํŒŒ์ด์ฌํ•จ์ˆ˜
    • ํŒŒ์ด์ฌ
    • Python
    • ๋“œ๋ฆผํ•ต
    • old-16
    • ํŒŒ์ด์ฌ๊ธฐ์ดˆ
    • ๋ฆฌ์ŠคํŠธํ•จ์ˆ˜

    ๋‚˜์˜ ์™ธ๋ถ€ ๋งํฌ

    • Github
    • solved.ac
    • caputdraconis@kakao.com

    ์ •๋ณด

    caputdraconis์˜ caputdraconis

    caputdraconis

    caputdraconis

    ๋ธ”๋กœ๊ทธ ๊ตฌ๋…ํ•˜๊ธฐ

    • ๊ตฌ๋…ํ•˜๊ธฐ
    • RSS ํ”ผ๋“œ

    ๋ฐฉ๋ฌธ์ž

    • ์ „์ฒด ๋ฐฉ๋ฌธ์ž
    • ์˜ค๋Š˜
    • ์–ด์ œ

    ํ‹ฐ์Šคํ† ๋ฆฌ

    • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
    • ์ด ๋ธ”๋กœ๊ทธ ๊ด€๋ฆฌํ•˜๊ธฐ
    • ๊ธ€์“ฐ๊ธฐ
    Powered by Tistory / Kakao. Copyright © caputdraconis.

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”