전체 코드는 가장 하단에 있습니다 ~

전에 한 번 풀었던 문제던데 기억이 x
코드 보니까 이분 탐색으로 풀었던데 동아리에서 배운 STL Map 사용해서 다시 풀어봤다
파이썬 딕셔너리와 동일한 개념으로,
Key 와 Value 를 저장하고 값을 쉽게 찾을 수 있는 자료구조로 이해했다
size, find, erase, begin, end 등등 ...
많이 본 함수들도 사용 가능하
Map .find()
키 값에 대한 벨류를 찾을 때 쓴다
없다면 map.end() 를 반환한다는 부분을 생각해서 문제 조건에 맞게 조건문을 설정해줬다
make_pair
두 원소를 묶은 pair 를 만든다
first : 첫 번째 인자를 반환
second : 두 번째 인자를 반환
전체 코드
#include <iostream>
#include <map>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(nullptr);
map<int, int> m;
int N, M;
int input;
cin >> N;
for (int i = 0; i < N; i++) {
cin >> input;
m.insert(make_pair(input, 1));
}
cin >> M;
for (int i = 0; i < M; i++) {
cin >> input;
if (m.find(input) != m.end()) {
cout << m.find(input)->second << " ";
}
else {
cout << "0 ";
}
}
}
'PS' 카테고리의 다른 글
| [PS] (백준 1080번) 행렬 C++ (0) | 2024.05.22 |
|---|---|
| [PS] (백준 2840번) 행운의 바퀴 C++ (0) | 2024.05.08 |
| [PS] (백준 9093번) 단어 뒤집기 C++ : 공백 포함 문자열 입력 받기 (0) | 2024.05.06 |