본문으로 바로가기

숫자를 입력받아 오름차순으로 정렬한 다음 equal_range 메소드를 사용하여 문제를 풀 수 있다.

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

vector<int> v;
int n, m;

int main() {
  scanf("%d", &n);

  int tmp;
  while (n--) {
    scanf("%d", &tmp);
    v.push_back(tmp);
  }

  sort(v.begin(), v.end());// 오름차순 정렬

  scanf("%d", &m);
  while (m--) {
    scanf("%d", &tmp);
    // equal_range: lower_bound와 upper_bound를 동시에 구해준다
    auto p = equal_range(v.begin(), v.end(), tmp);
    printf("%lu ", p.second - p.first);
  }

  return 0;
}

'Programming > Baekjoon Online Judge' 카테고리의 다른 글

[BOJ] 12813: 이진수 연산  (0) 2018.06.21
[BOJ] 10867: 중복 빼고 정렬하기  (0) 2018.06.21
[BOJ] 10816: 숫자 카드 2  (0) 2018.06.21
[BOJ] 10815: 숫자 카드  (0) 2018.06.21
[BOJ] 2346: 풍선 터뜨리기  (0) 2018.06.21
[BOJ] 1927: 최소 힙  (0) 2018.06.21

댓글을 달아 주세요