티스토리 뷰

사용언어 ) C++

백준 : https://www.acmicpc.net/problem/10815

 

10815번: 숫자 카드

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

문제)

  숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오.

 

풀이)

  이 문제는 두가지 방식으로 풀 수 있는데, 단순하게 배열을 만들어서 정렬해서 푸는 방식이 있고, C++의 STL중 하나인 map을 사용하여 푸는 방식이 있다. 그 중에서 나는 단순하게 map을 사용하여 풀었다.

 

사용코드)

#pragma warning(disable:4996)
#include <iostream>
#include <map>
using namespace std;

int main() {
    int N;
    int s;
    map<int, int> maps;
    scanf("%d", &N);
    for (int i = 0; i < N; i++) {
        scanf("%d", &s);
        maps[s] = 1;
    }
    scanf("%d", &N);
    for (int i = 0; i < N; i++) {
        scanf("%d", &s);
        if (maps[s])
            cout << "1 ";
        else
            cout << "0 ";
    }
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함