Skip to content

Latest commit

 

History

History
35 lines (30 loc) · 1.45 KB

풀이_11723.md

File metadata and controls

35 lines (30 loc) · 1.45 KB

🦥 백준 11723 - 집합

  • Date : 2022.01.30(일)
  • Time : 10분

문제

  • 비어있는 공집합 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를 공집합으로 바꾼다.

코드 풀이

    a = str(sys.stdin.readline().rstrip())
    lists = a.split()

: 처음에는 입력을 2개로 받으려고 했는데, 그러면 all과 empty는 뒤의 숫자가 안들어오기 때문에 에러가 발생한다. 그래서 하나의 문자로 받은 다음에 공백이 있으면 나눠줘서 lists[0]은 명령어, lists[1]은 x로 받아주었다.

    if lists[0] == "add":
        if lists[1] not in arr:
            arr.append(lists[1])
    elif lists[0] == "check":
        if lists[1] in arr:
            print("1")
        else :
            print("0")

: if 문들로 검사해서 조건식을 만들어주었다. in 이라는 기본 문법을 이용해 숫자가 안에 들어있는지 검사할 수 있다.