__Python/__Algorithm
[Python] ๋ฐฑ์ค - 11723 ์งํฉ
KL_
2022. 3. 24. 14:29
๋ฌธ์
https://www.acmicpc.net/problem/11723
๐น ๋ฌธ์
๋น์ด์๋ ๊ณต์งํฉ S๊ฐ ์ฃผ์ด์ก์ ๋, ์๋ ์ฐ์ฐ์ ์ํํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
- add x: S์ x๋ฅผ ์ถ๊ฐํ๋ค. (1 ≤ x ≤ 20) S์ x๊ฐ ์ด๋ฏธ ์๋ ๊ฒฝ์ฐ์๋ ์ฐ์ฐ์ ๋ฌด์ํ๋ค.
- remove x: S์์ x๋ฅผ ์ ๊ฑฐํ๋ค. (1 ≤ x ≤ 20) S์ x๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ์ฐ์ฐ์ ๋ฌด์ํ๋ค.
- check x: S์ x๊ฐ ์์ผ๋ฉด 1์, ์์ผ๋ฉด 0์ ์ถ๋ ฅํ๋ค. (1 ≤ x ≤ 20)
- toggle x: S์ x๊ฐ ์์ผ๋ฉด x๋ฅผ ์ ๊ฑฐํ๊ณ , ์์ผ๋ฉด x๋ฅผ ์ถ๊ฐํ๋ค. (1 ≤ x ≤ 20)
- all: S๋ฅผ {1, 2, ..., 20} ์ผ๋ก ๋ฐ๊พผ๋ค.
- empty: S๋ฅผ ๊ณต์งํฉ์ผ๋ก ๋ฐ๊พผ๋ค.
๐น ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ํํด์ผ ํ๋ ์ฐ์ฐ์ ์ M (1 ≤ M ≤ 3,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์ ์ํํด์ผ ํ๋ ์ฐ์ฐ์ด ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค.
๐น ์ถ๋ ฅ
check ์ฐ์ฐ์ด ์ฃผ์ด์ง๋๋ง๋ค, ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด ๋ฐฉ๋ฒ
๐น ๊ตฌํ
๐น ์งํฉ
๐น ๊ฐ ์ ๋ ฅ ์กฐ๊ฑด๋ณ ๋์ ๋ฐฉ์์ ๊ตฌํ.
๐น ๋ค๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ & ์ ์ฌํ ๋ฌธ์ - ํ(#10845), ํ 2(#18258), ์คํ(#10828)
๊ตฌํ ์ฝ๋
import sys
m = int(sys.stdin.readline())
s = set()
for _ in range(m):
order = sys.stdin.readline().split()
od = order[0]
if od == 'all':
s = set(range(1,21))
elif od == 'empty':
s = set()
else:
x = int(order[1])
if od == 'add' and x not in s:
s.add(x)
elif od == 'remove' and x in s:
s.discard(x)
elif od == 'check':
print([0,1][x in s])
elif od == 'toggle' and x in s:
s.discard(x)
elif od == 'toggle' and x not in s:
s.add(x)
์คํ ๊ฒฐ๊ณผ
๐ก
728x90