[백준] 7785번 회사에 있는 사람

거북이·2023년 1월 3일
0

백준[실버5]

목록 보기
42/114
post-thumbnail

💡문제접근1

리스트에 appendremove를 이용해서 요소를 추가, 제거하는 간단한 문제라고 생각하여 그대로 코드를 작성했지만 시간초과가 발생했다.

💡코드1

import sys

n = int(input())
company_employee = []
for _ in range(n):
    employee, status = map(str, sys.stdin.readline().strip().split())
    if status == "enter":
        company_employee.append(employee)
    else:
        company_employee.remove(employee)

company_employee.sort(reverse=True)
for i in company_employee:
    print(i)

📌 시간 복잡도 효율성 : 집합(set)이 리스트(list)보다 효율성이 좋다.

💡문제접근2

전에 풀었던 문제에서 set자료형이 list자료형보다 시간 복잡도 측면에서 효율성이 좋다고 했던 사실을 기억하여 문제를 set으로 바꿔서 풀어보았다.

💡코드2(메모리 : 41880KB, 시간 : 216ms)

import sys

n = int(input())
company_employee = set()
for _ in range(n):
    employee, status = map(str, sys.stdin.readline().strip().split())
    if status == "enter":
        company_employee.add(employee)
    else:
        company_employee.remove(employee)

company_employee = sorted(company_employee, reverse=True)
for i in company_employee:
    print(i)

💡소요시간 : 4m

0개의 댓글