1620번: 나는야 포켓몬 마스터 이다솜 (acmicpc.net)
마찬가지로 C++ STL map을 이용해서 푸는 문제였다.
이 문제는 시간초과가 관건이라 최대한 간단하게 생각해내는 게 중요한 것 같다.
그리고 출력을 따로 벡터에 저장하지 않고 바로바로 처리해줘도 된다는 걸 오늘 알았다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <iostream>
#include <map>
#include <string>
#include <cstring>
int main() {
int n = 0, m = 0;
scanf("%d %d", &n, &m);
std::string name[100001];
std::map<std::string, int> string_to_int;
for (int i = 0; i < n; i++) {
char* tmp = new char[21];
scanf("%s", tmp);
string_to_int[tmp] = i + 1;
name[i + 1] = tmp;
}
for (int i = 0; i < m; i++) {
char* tmp = new char[21];
scanf("%s", tmp);
// 숫자
if (std::isdigit(tmp[0]) != 0) {
int n = std::stoi(tmp);
char* answer = strcpy(new char[name[n].length() + 1], name[n].c_str());
printf("%s\n", answer);
}
// 문자
else {
printf("%d\n", string_to_int[tmp]);
}
}
return 0;
}
'Computer Science > C++' 카테고리의 다른 글
백준 C++ | #28 BOJ15649 N와 M(1) C++ 문제 풀이 (0) | 2022.09.04 |
---|---|
백준 C++ | #28 BOJ9663 N-Queen (백트래킹 알고리즘) C++ 문제 풀이 (0) | 2022.09.03 |
백준 C++ | #26 BOJ2358 평행선 C++ 문제 풀이 (0) | 2022.09.01 |
백준 C++ | #25 BOJ2257 화학식량 C++ 문제 풀이 (0) | 2022.09.01 |
백준 C++ | #24 BOJ1823 수확 C++ 문제 풀이 (0) | 2022.08.24 |