๐Ÿ’  BOJ

[BOJ][C++] ๋ฐฑ์ค€ 1296๋ฒˆ: ๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ

์„ ๋‹ฌ 2023. 10. 16. 14:45
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/1269

 

1269๋ฒˆ: ๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ

์ฒซ์งธ ์ค„์— ์ง‘ํ•ฉ A์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜์™€ ์ง‘ํ•ฉ B์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ง‘ํ•ฉ A์˜ ๋ชจ๋“  ์›์†Œ๊ฐ€, ์…‹์งธ ์ค„์—๋Š” ์ง‘ํ•ฉ B์˜ ๋ชจ๋“  ์›์†Œ๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ๊ฐ๊ฐ ์ฃผ์–ด

www.acmicpc.net

 

๋ฌธ์ œ

์ž์—ฐ์ˆ˜๋ฅผ ์›์†Œ๋กœ ๊ฐ–๋Š” ๊ณต์ง‘ํ•ฉ์ด ์•„๋‹Œ ๋‘ ์ง‘ํ•ฉ A์™€ B๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ, ๋‘ ์ง‘ํ•ฉ์˜ ๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋‘ ์ง‘ํ•ฉ A์™€ B๊ฐ€ ์žˆ์„ ๋•Œ, (A-B)์™€ (B-A)์˜ ํ•ฉ์ง‘ํ•ฉ์„ A์™€ B์˜ ๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, A = { 1, 2, 4 } ์ด๊ณ , B = { 2, 3, 4, 5, 6 } ๋ผ๊ณ  ํ•  ๋•Œ,  A-B = { 1 } ์ด๊ณ , B-A = { 3, 5, 6 } ์ด๋ฏ€๋กœ, ๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๋Š” 1 + 3 = 4๊ฐœ์ด๋‹ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ง‘ํ•ฉ A์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜์™€ ์ง‘ํ•ฉ B์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ง‘ํ•ฉ A์˜ ๋ชจ๋“  ์›์†Œ๊ฐ€, ์…‹์งธ ์ค„์—๋Š” ์ง‘ํ•ฉ B์˜ ๋ชจ๋“  ์›์†Œ๊ฐ€ ๋นˆ ์นธ์„ ์‚ฌ์ด์— ๋‘๊ณ  ๊ฐ๊ฐ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ์ง‘ํ•ฉ์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๋Š” 200,000์„ ๋„˜์ง€ ์•Š์œผ๋ฉฐ, ๋ชจ๋“  ์›์†Œ์˜ ๊ฐ’์€ 100,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ๋Œ€์นญ ์ฐจ์ง‘ํ•ฉ์˜ ์›์†Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

์‰ฌ์šด ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•ด์„œ ๋ฐฐ์—ด์„ ์ด์šฉํ–ˆ์œผ๋‚˜ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปธ๊ธฐ ๋•Œ๋ฌธ์ธ์ง€ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€ ๋œฌ๋‹ค

#include <iostream>
#include <vector>

using namespace std;

const int INF = 100000000;

int main() {
    vector<int> number(INF, 0);
    int n,m, k;
    cin >> n >> m;
    for(int i=0; i<n+m; i++) {
        cin >> k;
        number[k]++;
    }
    
    int ans=0;
    for(int i=0; i<INF; i++) {
        if(number[i] == 1) {
            ans++;
        }
    }
    cout << ans;
    
    return 0;
}

 

https://www.acmicpc.net/board/view/24015

 

๊ธ€ ์ฝ๊ธฐ - ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ... 128 mb์ด๋ฉด intํ˜• ๋ช‡๊ฐœ?๊นŒ์ง€ ์„ ์–ธ๊ฐ€๋Šฅํ•œ๊ฐ€์š”??

๋Œ“๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด ๋กœ๊ทธ์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

www.acmicpc.net

 

๋ณธ ๋ฌธ์ œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ์€ 256mb๋กœ 1mb๋‹น ์ •์ˆ˜ 26๋งŒ๊ฐœ ์ •๋„๋งŒ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š”๊ฑธ ๊ฐ์•ˆํ•˜๋ฉด ์•ฝ 6์ฒœ๋งŒ๊ฐœ์˜ ์ •์ˆ˜๋งŒ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค

์œ„ ์ฝ”๋“œ์—์„œ๋Š” ๋ฐฐ์—ด์— ์ •์ˆ˜๋ฅผ 10์–ต๊ฐœ ์ €์žฅํ•˜๋ ค ํ•˜๋‹ˆ ํ„ฑ์—†์ด ๋ชจ์ž๋ผ๋‹ค

 

๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด set ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ–ˆ๋‹ค

 

#include <iostream>
#include <set>

using namespace std;

const int INF = 100000000;

int main() {
    set<int> set;
    int n,m, k;
    cin >> n >> m;
    for(int i=0; i<n+m; i++) {
        cin >> k;
        auto iter = set.find(k);
        if(iter != set.end()) {
            set.erase(iter);
        } else {
            set.insert(k);
        }
    }
    
    cout << set.size();

    return 0;
}
๋ฐ˜์‘ํ˜•