PS/Baekjoon Online Judge

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

kimyoungrok 2021. 8. 2. 17:05

백준 - 1620


풀이

구조체 배열의 index와 문자열을 이용해 숫자를 입력받을 떄는 별도의 탐색없이 출력이 가능하지만, 문자열 검색시에는 탐색을 필요로 하고, 이 과정에서 시간 초과가 발생해 map을 사용해 풀이했다.

 


소스코드

#include <stdio.h>
#include <map>
#include <string>
#include <stdlib.h>
using namespace std;
map<string, int> name;
map<int, string> num;

int main(){
    int N, M;
    scanf("%d %d", &N, &M);
    char temp[21];
    for (int i = 0; i < N; i++){
        scanf("%s", temp);
        name[temp] = i;
        num[i] = temp;
    }
    for (int i = 0; i < M; i++){
        scanf("%s", temp);
        if (temp[0] <= '9')
            printf("%s\n", num[atoi(temp)-1].c_str());
        else printf("%d\n", name[temp]+1);
    }
}

출처

 

1620번: 나는야 포켓몬 마스터 이다솜

첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면

www.acmicpc.net