[๋ฐฑ์ค] 17219๋ฒ - ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ (C++)
17219๋ฒ: ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ
์ฒซ์งธ ์ค์ ์ ์ฅ๋ ์ฌ์ดํธ ์ฃผ์์ ์ N(1 ≤ N ≤ 100,000)๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์ผ๋ ค๋ ์ฌ์ดํธ ์ฃผ์์ ์ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋๋ฒ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ์ค์ ์ฌ์ดํธ ์ฃผ์์ ๋น๋ฐ๋ฒ
www.acmicpc.net
๋ฌธ์
2019 HEPC - MAVEN League์ "๋น๋ฐ๋ฒํธ ๋ง๋ค๊ธฐ"์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ๋ง๋ ๊ฒฝ๋ฏผ์ด๋ ํ ๊ฐ์ง ๋ฌธ์ ์ ์ ๋ฐ๊ฒฌํ์๋ค. ๋น๋ฐ๋ฒํธ๊ฐ ๋๋ค์ผ๋ก ๋ง๋ค์ด์ ธ์ ๊ธฐ์ต์ ๋ชป ํ๋ค๋ ๊ฒ์ด์๋ค! ๊ทธ๋์ ๊ฒฝ๋ฏผ์ด๋ ๋ฉ๋ชจ์ฅ์ ์ฌ์ดํธ์ ์ฃผ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ์ฅํด๋๊ธฐ๋ก ํ๋ค. ํ์ง๋ง ์ปด๋งน์ธ ๊ฒฝ๋ฏผ์ด๋ ๋ฉ๋ชจ์ฅ์์ ์ฐพ๊ธฐ ๊ธฐ๋ฅ์ ํ์ฉํ์ง ๋ชปํ๊ณ ์ง์ ๋์ผ๋ก ์ฌ์ดํธ์ ์ฃผ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์๋ค. ๋ฉ๋ชจ์ฅ์ ์ ์ฅ๋ ์ฌ์ดํธ์ ์๊ฐ ๋์ด๋๋ฉด์ ๊ฒฝ๋ฏผ์ด๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ๋ ์ผ์ ์๊ฐ์ ๋๋ฌด ๋ง์ด ์ฐ๊ฒ ๋์๋ค. ์ด๋ฅผ ๋ฑํ๊ฒ ์ฌ๊ธด ๋ฌธ์์ด๋ ๊ฒฝ๋ฏผ์ด๋ฅผ ์ํด ๋ฉ๋ชจ์ฅ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ฌํ์๋ค! ๋ฌธ์์ด๋ฅผ ๋์ ๊ฒฝ๋ฏผ์ด์ ๋ฉ๋ชจ์ฅ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์์ฃผ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด๋ณด์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ ์ฅ๋ ์ฌ์ดํธ ์ฃผ์์ ์ N(1 ≤ N ≤ 100,000)๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์ผ๋ ค๋ ์ฌ์ดํธ ์ฃผ์์ ์ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค.
๋๋ฒ์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ๊ฐ ์ค์ ์ฌ์ดํธ ์ฃผ์์ ๋น๋ฐ๋ฒํธ๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ์ฌ์ดํธ ์ฃผ์๋ ์ํ๋ฒณ ์๋ฌธ์, ์ํ๋ฒณ ๋๋ฌธ์, ๋์('-'), ๋ง์นจํ('.')๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์ค๋ณต๋์ง ์๋๋ค. ๋น๋ฐ๋ฒํธ๋ ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์๋ค. ๋ชจ๋ ๊ธธ์ด๋ ์ต๋ 20์์ด๋ค.
N+2๋ฒ์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฑธ์ณ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์ผ๋ ค๋ ์ฌ์ดํธ ์ฃผ์๊ฐ ํ์ค์ ํ๋์ฉ ์ ๋ ฅ๋๋ค. ์ด๋, ๋ฐ๋์ ์ด๋ฏธ ์ ์ฅ๋ ์ฌ์ดํธ ์ฃผ์๊ฐ ์ ๋ ฅ๋๋ค.
์ถ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ๊ฑธ์ณ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐพ์ผ๋ ค๋ ์ฌ์ดํธ ์ฃผ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฐจ๋ก๋๋ก ๊ฐ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
ํ์ด๊ณผ์
- map : ๋น๋ฐ๋ฒํธ์ ์์ด๋์ ์ ๋ณด๊ฐ ๋ด๊ธธ ๋งต
- idPa : ์์์ ์ผ๋ก ๊ณ์ ์ ๋ณด๋ฅผ ๋ด์ ์ฅ์
๋งต์ ๊ณ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๋ต๊ณ map.find๋ฅผ ํตํด ํด๋น์ ๋ณด๋ฅผ ์ฐพ๋๋ค.
code
#include <iostream>
#include <string>
#include <map>
std::map<std::string, std::string> map;
int main(void)
{
std::ios_base::sync_with_stdio(false);
std::cin.tie(0);
std::cout.tie(0);
int n, m;
std::pair <std::string, std::string> idPa;
std::cin >> n >> m;
for (int i = 0; i < n; i++) {
std::cin >> idPa.first >> idPa.second;
map.insert(std::make_pair(idPa.first, idPa.second));
}
for (int i = 0; i < m; i++) {
std::cin >> idPa.first;
std::cout << map.find(idPa.first)->second << "\n";
}
return (0);
}
ํ๊ธฐ
ํฌ๊ฒ ์ด๋ ต์ง์๊ฒ ์ ๊ทผํ ์ ์์๋ค!