문제 링크

 

26168번: 배열 전체 탐색하기

크기 n인 정수형 배열 A가 주어진다. 배열 A의 원소는 A[0], A[1], ... , A[n-1]이다. 배열 A에는 같은 값을 갖는 원소가 여러 개 존재할 수 있다. 배열 A에 대한 m개의 질의가 저장된 배열 B가 주어진다.

www.acmicpc.net


문제

크기 n인 정수형 배열 A가 주어진다. 배열 A의 원소는 A[0], A[1], ... , A[n-1]이다. 배열 A에는 같은 값을 갖는 원소가 여러 개 존재할 수 있다. 배열 A에 대한 m개의 질의가 저장된 배열 B가 주어진다. 배열 B에 저장된 m개의 질의는 아래 세 가지 유형으로 구분된다. 첫 번째가 유형 1, 두 번째가 유형 2, 세 번째가 유형 3이다.

  • 1 k: 배열 A의 원소 중 k보다 크거나 같은 원소의 개수를 출력한다.
  • 2 k: 배열 A의 원소 중 k보다 큰 원소의 개수를 출력한다.
  • 3 i j: 배열 A의 원소 중 i보다 크거나 같고 j보다 작거나 같은 원소의 개수를 출력한다.

배열 B에 저장된 첫 번째 질의부터 m번째 질의까지 순서대로 처리하면서 질의 결과를 출력하자.


입력

첫 번째 줄에 n과 m이 공백을 사이에 두고 순서대로 주어진다.

두 번째 줄에 배열 A의 원소 A[0], A[1], ... , A[n-1]이 공백을 사이에 두고 순서대로 주어진다.

세 번째 줄부터 m개의 줄에 걸쳐 배열 B에 저장된 m개의 질의가 순서대로 주어진다. 한 줄에 하나의 질의를 나타내는 정수가 공백을 사이에 두고 순서대로 주어진다.


출력

첫 번째 줄부터 질의 결과를 순서대로 한 줄씩 출력한다.




#include <stdio.h>
typedef long long ll;
ll a[100004];
int n;

int A(ll a1)
{
    int count = 0;
    for (int i = 0; i < n; i++) if (a[i] >= a1) count++;
    return count;
}

int B(ll b)
{
    int count = 0;
    for (int i = 0; i < n; i++) if (a[i] > b) count++;
    return count;
}

int C(ll c1, ll c2)
{
    int count = 0;
    for (int i = 0; i < n; i++) if (a[i] >= c1 && a[i] <= c2) count++;
    return count;
}

int main()
{
    int m;

    scanf("%d %d", &n, &m);
    for (int i = 0; i < n; i++) scanf("%lld", &a[i]);

    for (int i = 0; i < m; i++)
    {
        int op;
        scanf("%d", &op);
        if (op == 1)
        {
            ll x;
            scanf("%lld", &x);
            printf("%d\n", A(x));
        }
        else if (op == 2)
        {
            ll x;
            scanf("%lld", &x);
            printf("%d\n", B(x));
        }
        else
        {
            ll x, y;
            scanf("%lld %lld", &x, &y);
            printf("%d\n", C(x, y));
        }
    }
}

'코딩 > 코딩(코딩 문제, 알고리즘 등등)' 카테고리의 다른 글

백준 11441(합 구하기)  (0) 2023.01.22
백준 11659(구간 합 구하기 4)  (0) 2023.01.22
백준 4673(셀프 넘버)  (2) 2022.05.18
백준 15596(정수 N개의 합)  (0) 2022.05.18
백준 15552(빠른 A+B)  (0) 2022.05.18
백준 3009(네 번째 점)  (0) 2022.01.25

+ Recent posts