__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