공부일지

[코딩 테스트] 코드업 예제로 알아보는 Python 내장모듈 Counter와 경과시간 본문

Computer/Coding Tests

[코딩 테스트] 코드업 예제로 알아보는 Python 내장모듈 Counter와 경과시간

이르리의 공부일지 2025. 3. 11. 14:19
'''
https://codeup.kr/problem.php?id=1410
1410 : 올바른 괄호 1

input
((())()(()))

output
6 6
'''
import time

start1 = time.time()
gwalho = list(input())

left_cnt = 0
right_cnt = 0
for i in gwalho:
    if i == '(':
        left_cnt += 1
    elif i == ')':
        right_cnt += 1

print(left_cnt, right_cnt)
end1 = time.time()


start2 = time.time()
from collections import Counter

counter = Counter(gwalho)
# print(counter.items())
sorted_counter = sorted(counter.items(), key=lambda x: x[0] != '(')
# print(sorted_counter)

print(sorted_counter[0][1], sorted_counter[1][1])
end2 = time.time()


notice = f'''
time1: {end1 - start1}
time2: {end2 - start2}
'''
print(notice)

'''
time1: 1.725877046585083
time2: 0.00019502639770507812
'''

 

위에 코드에서 처럼 시간은 

for loop 보다 내장 모듈 Counter를 썼을 때 훨씬 적게 나왔다.

코드업 실행시간 및 메모리, 코드 길이를 비교하면

Counter가 공간은 좀더 차지하지만 시간이 확실히 적게 나온 것을 확인할 수 있다.