ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [λ°±μ€€] 1822 차집합 with Python
    PS 2022. 3. 6. 21:43
    728x90
    λ°˜μ‘ν˜•

    πŸ“Œ BOJ 1822 차집합

    πŸ’‘ 쑰건

    1. 집합 Aμ—λŠ” μ†ν•˜λ©΄μ„œ 집합 Bμ—λŠ” μ†ν•˜μ§€ μ•ŠλŠ” λͺ¨λ“  μ›μ†Œλ₯Ό κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜λŠ” 문제.

    2. 집합 A의 μ›μ†Œμ˜ 개수 n(A)와 집합 B의 μ›μ†Œμ˜ 개수 n(B)κ°€ 빈 칸을 사이에 두고 주어진닀.

    3. (1 ≀ n(A), n(B) ≀ 500,000)이 주어진닀.

    4. λ‘˜μ§Έ μ€„μ—λŠ” 집합 A의 μ›μ†Œκ°€, μ…‹μ§Έ μ€„μ—λŠ” 집합 B의 μ›μ†Œκ°€ 빈 칸을 사이에 두고 주어진닀.

    5. ν•˜λ‚˜μ˜ μ§‘ν•©μ˜ μ›μ†ŒλŠ” 2,147,483,647 μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ©°, ν•˜λ‚˜μ˜ 집합에 μ†ν•˜λŠ” λͺ¨λ“  μ›μ†Œμ˜ 값은 λ‹€λ₯΄λ‹€.

    6. μ§€λ£Œκ΅¬μ‘° μœ ν˜•μ˜ 문제

    πŸ–₯ μ†ŒμŠ€ μ½”λ“œ

    from sys import stdin
    
    n, m = map(int, stdin.readline().split())
    a = set(map(int, stdin.readline().split()))
    b = set(map(int, stdin.readline().split()))
    
    res = a-b
    
    if res:
        print(len(res))
        print(*sorted(list(res)))
    else:
        print(0)

    πŸ”– 예제 및 μ‹€ν–‰κ²°κ³Ό

    예제

    4 3
    2 5 11 7
    9 7 4

    μ‹€ν–‰κ²°κ³Ό

    3
    2 5 11

    ⌨️ 문제 풀이

    1. 각 μ§‘ν•©μ˜ μ›μ†Œμ˜ 개수λ₯Ό μž…λ ₯λ°›λŠ”λ‹€.

    2. 각 집합을 μž…λ ₯λ°›λ˜, set() μžλ£Œκ΅¬μ‘°μ— μž…λ ₯을 λ°›λŠ”λ‹€.

    3. a 집합 μžλ£Œν˜•μ—μ„œ b 집합 μžλ£Œν˜•μ„ λΉΌμ€€ 결과값을 res에 μ €μž₯ν•œλ‹€.

    4. resκ°€ 빈 값이라면, 0을 좜λ ₯ν•œλ‹€.

    5. resκ°€ λΉ„μ–΄μžˆμ§€ μ•Šλ‹€λ©΄, res의 길이와 μ •λ ¬λœ resλ₯Ό 좜λ ₯ν•œλ‹€.

    πŸ’Ύ λŠλ‚€μ 

    1. ν•΄μ‹œλ§΅ 자료ꡬ쑰λ₯Ό μ‚¬μš©ν•œ κ°„λ‹¨ν•œ λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€.
    λ°˜μ‘ν˜•

    λŒ“κΈ€

Designed by Tistory.