혼자 정리
1620번: 나는야 포켓몬 마스터 이다솜 본문
#include <iostream>
#include <string>
#include <map>
using namespace std;
int N, M;
string temp;
map <string, int> maps;
string arr[100001];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> M;
for (int i = 0; i < N; i++)
{
cin >> temp;
maps.insert(pair<string, int>(temp, i + 1));
arr[i + 1] = temp;
}
for (int i = 0; i < M; i++)
{
cin >> temp;
if (isdigit(temp[0]))
{
cout << arr[atoi(temp.c_str())] << "\n";
}
else
{
cout << maps[temp] << "\n";
}
}
}
import sys
input = sys.stdin.readline
N,M = map(int, input().split())
arr = [0]
dic = dict()
for i in range(1, N+1):
temp = input().rstrip()
arr.append(temp)
dic[temp] = i
for j in range(1, M+1):
tmp = input().rstrip()
if tmp.isalpha():
print(dic[tmp])
else :
print(arr[int(tmp)])
- cpp에서는 map을 활용.
- string을 key, int를 value로 활용
- 파이썬에서는 딕셔너리를 활용.
- 그냥 input을 사용했을 때 시간초과.
- 처음 sys.stdin.readline을 해줬을 때는 rstrip()을 해주지 않아서 int로 바꿔서 arr의 인덱스로 사용하려 할 때 오류 발생.
- sys.stdin.readline에 rstrip로 개행 처리해줬을 때 통과. rstrip를 해줘도 input()보다 빠른듯하다.
'알고리즘 문풀 > 백준' 카테고리의 다른 글
11726번: 2×n 타일링 (0) | 2021.07.19 |
---|---|
9095번: 1, 2, 3 더하기 (0) | 2021.07.18 |
17626번: Four Squares (0) | 2021.07.17 |
11723번: 집합 (0) | 2021.07.16 |
5525번: IOIOI (0) | 2021.07.15 |