Python/알고리즘 - 백준
백준 11723 파이썬 문제풀이
Jong_seoung
2023. 9. 21. 14:06
반응형
백준 11723 파이썬 문제 풀이
문제 링크
https://www.acmicpc.net/problem/11723
11723번: 집합
첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.
www.acmicpc.net
문제
입력
첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다.
둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다.
출력
check 연산이 주어질때마다, 결과를 출력한다.
제출 코드
import sys
input = sys.stdin.readline
test = int(input()) # 수행 횟수
S = []
for i in range(test):
a = list(input().split())
if a[0] == 'all':
S = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20"]
elif a[0] == 'empty':
S = []
elif S.count(a[1]) >= 1:
if a[0] == 'remove' or a[0] == 'toggle':
S.remove(a[1])
elif a[0] == 'check':
print(1)
else:
if a[0] == 'add' or a[0] == 'toggle':
S.append(a[1])
elif a[0] == 'check':
print(0)
오답 코드
더보기
test = int(input()) # 수행 횟수
S = []
for i in range(test):
a = list(input().split())
if a[0] == 'all':
S = [str(i) for i in range(1, 21)]
elif a[0] == 'empty':
S = []
elif S.count(a[1]) >= 1:
if a[0] == 'remove' or a[0] == 'toggle':
S.remove(a[1])
elif a[0] == 'check':
print(1)
else:
if a[0] == 'add' or a[0] == 'toggle':
S.append(a[1])
elif a[0] == 'check':
print(0)
문제점 - 시간 초과
해결 방법
1. input을 sys.stdin.readline으로 변경
2. 'all'에서 1~20 까지의 값을 직접 입력
반응형