백준 1620 나는야 포켓몬 마스터 이다솜 / C++

이유참치·2025년 7월 31일

백준

목록 보기
22/249

문제 : 1620

풀이 point

맵을 활용하여 포켓몬의 이름과 도감 숫자를 저장한다.
포켓몬 이름 : 도감 숫자
도감 숫자 : 포켓몬 이름

총 두개의 맵으로 저장한다.

풀이 방법

저장한 맵을 통해 찾으려고 하는 포켓몬 이름이 나오면 도감 숫자를
도감 숫자가 나오면 포켓몬 이름을 출력한다.

빠른 입력으로 하지 않을시 시간초과가 일어난다.

코드

//백준 1620, 나는야 포켓몬 마스터 이다솜
#include <iostream>
#include <unordered_map>

std::unordered_map<std::string, std::string> nameNum;
std::unordered_map<std::string, std::string> numName;

int main(){

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

    int N, M;
    std::string s;
    std::cin >> N >> M;

    for(int i{0}; i<N; ++i){
        std::cin >> s;
        nameNum[s] = std::to_string(i+1);
        numName[std::to_string(i+1)] = s;
    }

    for(int i{0}; i<M; ++i){
        std::cin >> s;
        auto it1 = nameNum.find(s);
        auto it2 = numName.find(s);
        if(it1 != nameNum.end()){
            std::cout << it1->second << '\n';
        }
        else if(it2 !=numName.end()){
            std::cout << it2->second << '\n';
        }
    }

    return 0;
}

2025-01-25T01:03:02.536Z

profile
임아리 - 대학생

0개의 댓글