[C++] ๋ฐฑ์ค BOJ 21939 ๋ฌธ์ ์ถ์ฒ ์์คํ Version 1
/*
BOJ 21939 ๋ฌธ์ ์ถ์ฒ ์์คํ
Version 1 ์ ์ฝ๋์
๋๋ค.
ํจ์จ์ ์ด์ง ์์ ํ์ด์ด๋,, ๋ค๋ฅธ ๋ถ์ ํ์ด๋ฅผ ์ฐธ๊ณ ํ์๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค..!
*/
๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/21939
์ ๋ต ์ฝ๋
#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