[BOJ / C++] 차집합 (이분탐색)

2025. 7. 29. 12:16·코딩테스트/BOJ

문제링크: https://www.acmicpc.net/problem/1822

 

1. 코드

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(0); cin.tie(0);

    int na, nb;
    cin >> na >> nb;

    vector<int> a(na);
    for (int i = 0; i < na; i++) {
        cin >> a[i];
    }
    
    vector<int> b(nb);
    for (int i = 0; i <  nb; i++) {
        cin >> b[i];
    }
    sort(b.begin(), b.end());

    vector<int> ans;
    for (int target: a) {
        if (!binary_search(b.begin(), b.end(), target)) {
            ans.push_back(target);
        }
    }
    sort(ans.begin(), ans.end());

    cout << ans.size() << '\n';
    for (int i: ans) {
        cout << i << ' ';
    }
}

 

 

2. 시간복잡도

na, nb가 최대 500,000이므로 각각 선형탐색해서 O(n^2)이 걸리면 시간초과가 된다. 따라서 정렬과 이분탐색을 통해 각각 O(nlgn)으로 시간복잡도를 낮춰야한다. nlgn = 5*10^5 * 20 < 10^8 이므로 시간제한 1초 내에 통과 가능하다.

 

 

3. 분석

이분탐색을 통해 시간복잡도를 O(nlgn)으로 낮추는 것이 키 포인트이다. 마지막에 구체적인 원소를 출력할 때도 증가하는 순으로 출력해줘야하는 것에 주의한다.

 

 

 

'코딩테스트 > BOJ' 카테고리의 다른 글

[BOJ / C++] 수 고르기 (투포인터)  (0) 2025.07.30
[BOJ / C++] 과자 나눠주기 (이분탐색, Parametric Search)  (0) 2025.07.29
[BOJ / C++] 숫자 카드 (이분탐색)  (0) 2025.07.28
[BOJ / C++] 랜선 자르기 (이분탐색, Parametric Search)  (0) 2025.07.28
[BOJ / C++] 2×n 타일링 2 (다이나믹 프로그래밍)  (0) 2025.07.28
'코딩테스트/BOJ' 카테고리의 다른 글
  • [BOJ / C++] 수 고르기 (투포인터)
  • [BOJ / C++] 과자 나눠주기 (이분탐색, Parametric Search)
  • [BOJ / C++] 숫자 카드 (이분탐색)
  • [BOJ / C++] 랜선 자르기 (이분탐색, Parametric Search)
sophon
sophon
sophon 님의 블로그 입니다.
  • sophon
    sophon 님의 블로그
    sophon
    • 카테고리 (174) N
      • 컴퓨터공학 (36)
        • 데이터베이스 (19)
        • 네트워크 (15)
        • 기타 이슈 (2)
      • 프로젝트 (17) N
        • Java (8)
        • Spring (4)
        • Docker (4)
        • AI Agent (1) N
      • 코딩테스트 (96) N
        • BOJ (74)
        • 프로그래머스 (7)
        • 프로그래머스 SQL (13) N
        • PS Snippets (2)
      • 🌱 잡담 (22)
        • 자격증 (7)
        • 좋은 시 모음 (12)
        • 책과 영화 (3)
        • 기록 (0)
  • 전체
    오늘
    어제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
sophon
[BOJ / C++] 차집합 (이분탐색)
상단으로

티스토리툴바