풀이
구조체 배열의 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);
}
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 9613] GCD 합 [C] (0) | 2021.08.03 |
---|---|
[백준 1934] 최소공배수 [C] (0) | 2021.08.03 |
[백준 2749] 피보나치 수 3 [C] (0) | 2021.08.02 |
[백준 14731] 謎紛芥索紀 (Large) [C] (0) | 2021.08.02 |
[백준 14730] 謎紛芥索紀 (Small) [C] (0) | 2021.08.01 |