[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค-Lv1] ์ฒด์œก๋ณต / Python

๐Ÿ“š Problem Solving/Programmers

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์ฒด์œก๋ณต

์ ์‹ฌ์‹œ๊ฐ„์— ๋„๋‘‘์ด ๋“ค์–ด, ์ผ๋ถ€ ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ๋„๋‚œ๋‹นํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹คํ–‰ํžˆ ์—ฌ๋ฒŒ ์ฒด์œก๋ณต์ด ์žˆ๋Š” ํ•™์ƒ์ด ์ด๋“ค์—๊ฒŒ ์ฒด์œก๋ณต์„ ๋นŒ๋ ค์ฃผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ํ•™์ƒ๋“ค์˜ ๋ฒˆํ˜ธ๋Š” ์ฒด๊ฒฉ ์ˆœ์œผ๋กœ ๋งค๊ฒจ์ ธ ์žˆ์–ด, ๋ฐ”๋กœ ์•ž๋ฒˆ

programmers.co.kr

import sys

input = sys.stdin.readline
n = int(input())
lost = list(map(int, input().split()))
reserve = list(map(int, input().split()))


def solution(n, lost, reserve):
    setLost = set(lost) - set(reserve)
    setReserve = set(reserve) - set(lost)
    for i in setReserve:
        if i - 1 in setLost:
            setLost.remove(i - 1)
        elif i + 1 in setLost:
            setLost.remove(i + 1)
    return n - len(setLost)


print(solution(n, lost, reserve))

 

ํ•ด์„ค

์—ฌ๋ฒŒ์˜ ์ฒด์œก๋ณต์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ•™์ƒ์ด ์ฒด์œก๋ณต์„ ์žƒ์–ด๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ๋ฅผ ์œ„ํ•ด set์„ ํ†ตํ•ด ๋‹ค์‹œ ์žฌ์ •์˜ํ•ด์คฌ๋‹ค.

setReserve์˜ ๊ฐ’๋“ค์—์„œ -1, +1ํ•œ ๊ฐ’์ด setLost์— ์žˆ์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์„ setLost์—์„œ ์ œ๊ฑฐํ•œ ํ›„, ๋งˆ์ง€๋ง‰์—” ์ด ์ธ์›-setLost์˜ ๊ธธ์ด๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค.