알고리즘/BOJ

백준 15719번 중복된 숫자

꾸준함. 2018. 5. 22. 01:39

문제 링크입니다: https://www.acmicpc.net/problem/15719


http://jaimemin.tistory.com/498에서 사용한 기법을 그대로 사용하면 됩니다.

int형 변수는 32비트인 것을 이용하여 비트마스크를 적용하면 시간 내에 중복된 숫자를 찾을 수 있습니다!


#include <iostream>

using namespace std;

 

const int MAX = 10000000;

 

int N;

int arr[MAX];

 

int main(void)

{

        ios_base::sync_with_stdio(0);

        cin.tie(0); //cin의 속도를 극대화

 

        cin >> N;

 

        for (int i = 0; i < N; i++)

        {

                 int temp;

                 cin >> temp;

                 //int형 변수는 32bit

                 if ((arr[temp / 32] & (1 << (temp % 32))))

                 {

                         cout << temp;

                         break;

                 }

                 arr[temp / 32] |= (1 << (temp % 32));

        }

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 13699번 점화식  (0) 2018.05.23
백준 13698번 Hawk eyes  (0) 2018.05.23
백준 2482번 색상환  (4) 2018.05.19
백준 1753번 최단경로  (4) 2018.05.19
백준 14954번 Happy Number  (2) 2018.05.19