백준 13701 중복 제거 C++

백준 13701 중복 제거.

백준 13701번 "중복 제거" 문제의 자세한 내용은 글 하단의 문제 링크를 참고하세요.

13701번 문제에 주어지는 입력 및 예시

입력: 

12 1 449 12 555 1201 912 555 19372

출력:

12 1 449 555 1201 912 19372

코드

백준 13701번 "중복 제거" 문제의 코드입니다.

아래 코드에선 비트맵이 쓰였습니다.

비트맵이란 0또는 1로 이루어진 1차원 배열로서, 각 비트(bit)가 차지하는 메모리의 크기가 매우 작습니다. 예를 들어, int형 변수 하나를 선언하면 4바이트(32비트)의 메모리를 사용하는데, 이를 비트맵으로 사용하면 32개의 0또는 1을 저장할 수 있습니다.

#include <bits/stdc++.h>
using namespace std;
bitset<33554432> a;
int main(){
    ios_base::sync_with_stdio(false); cin.tie(0);cout.tie(0);
    int num;
    while(cin>>num){
    	if(!a[num]){
    		a[num]=1;
    		cout<<num<<' ';
		}
	}
	return 0;
}

실행

위의 코드를 예제의 입력을 넣어 실행했을 때의 결과입니다.

 

'C' 카테고리의 다른 글

백준 4659 비밀번호 발음하기 C++  (0) 2023.04.12
백준 2910 빈도 정렬 C++  (0) 2023.04.12
백준 15719 중복된 숫자 C++  (0) 2023.04.12
백준 2828 사과 담기 게임 C++  (0) 2023.04.12
백준 1992 쿼드 트리 C++  (0) 2023.04.11

Designed by JB FACTORY