๊ธฐ๋ก๋ฐฉ

BOJ_11723 : ์ง‘ํ•ฉ ๋ณธ๋ฌธ

CodingTest/Python

BOJ_11723 : ์ง‘ํ•ฉ

Soom_1n 2022. 8. 25. 15:10

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

11723๋ฒˆ: ์ง‘ํ•ฉ

์ฒซ์งธ ์ค„์— ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ์˜ ์ˆ˜ M (1 ≤ M ≤ 3,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ M๊ฐœ์˜ ์ค„์— ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ์—ฐ์‚ฐ์ด ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • set๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

import sys

m = int(sys.stdin.readline())
s = set()

for i in range(m):
    order = sys.stdin.readline()

    if order[:3] == "add":
        s.add(int(order[4:]))
    elif order[:6] == "remove":
        x = int(order[7:])
        if x in s:
            s.remove(x)
    elif order[:5] == "check":
        sys.stdout.write(str(int(int(order[6:]) in s)) + "\n")
    elif order[:6] == "toggle":
        x = int(order[7:])
        if x in s:
            s.remove(x)
        else:
            s.add(x)
    elif order[:3] == "all":
        s = set(range(1,21))
    elif order[:5] == "empty":
        s = set()

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ์‹œ๊ฐ„์ด ์งง๊ธฐ ๋•Œ๋ฌธ์— ๋น ๋ฅธ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ–ˆ๋‹ค.
  • add : x๊ฐ€ ์ง‘ํ•ฉ์— ์žˆ์–ด๋„ ์ค‘๋ณต์ด ์ œ๊ฑฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค add์‹œํ‚จ๋‹ค.
  • remove : x๊ฐ€ ์ง‘ํ•ฉ์— ์žˆ์œผ๋ฉด ์ œ๊ฑฐํ•œ๋‹ค.
  • check : x๊ฐ€ ์ง‘ํ•ฉ์— ์žˆ์œผ๋ฉด 1, ์—†์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • toggle : x๊ฐ€ ์ง‘ํ•ฉ์— ์žˆ์œผ๋ฉด ์ œ๊ฑฐ, ์—†์œผ๋ฉด ์ถ”๊ฐ€ํ•œ๋‹ค.
  • all : ์ง‘ํ•ฉ์„ { 1, 2, 3, . . . , 20 } ์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ๋‹ค.
  • empty : ์ง‘ํ•ฉ์„ ๋ชจ๋‘ ์ง€์šด๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • set๋ฅผ ์‚ฌ์šฉํ•œ ๊ธฐ์ดˆ ์˜ˆ์ œ๋ฌธ์ œ๋ฅผ ์ฒ˜์Œ ํ’€์–ด๋ดค๋Š”๋ฐ, ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • remove์—์„œ ์ด๋ฏธ ํฌํ•จ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋นผ์„œ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์—ˆ๋‹ค.
    • KeyError๋Š” key๋‚˜ key-value ํ˜•ํƒœ ๋“ฑ์—์„œ, ์—†๋Š” key๋ฅผ ํ˜ธ์ถœํ–ˆ์„๋•Œ ๋œฌ๋‹ค๊ณ  ํ•œ๋‹ค.
    • dictionary๋‚˜ set๋Š” ํ•ด์‹œ๋กœ ๊ตฌํ˜„๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์›์†Œ๊ฐ€ key๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.
  • set๊ฐ€ ์•„๋‹ˆ๋ผ c++ ๋“ฑ์—์„œ๋Š” ์ „ํ˜•์ ์ธ ๋น„ํŠธ๋งˆ์Šคํ‚น ๋ฌธ์ œ๋กœ ํ’€์ด๋œ๋‹ค๊ณ ํ•œ๋‹ค. ( ํ’€์ด ํฌ์ŠคํŒ… )
    • x์˜ ๋ฒ”์œ„๊ฐ€ 1~20์ด๋ฏ€๋กœ 20๊ฐœ์˜ ๋น„ํŠธ๋ฅผ ํ‚ค๊ฑฐ๋‚˜ ๋„๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

728x90