99클럽 코테 스터디 9일차 TIL + 백준 3986번 좋은 단어(Python)

모래·2025년 4월 8일

99클럽 스터디

목록 보기
7/20
post-thumbnail

✔️오늘의 학습 키워드

  • 스택
  • 백준 3986번 좋은단어

✔️ 공부한 내용

📌 오늘의 문제


📌 작성 코드

count=0
for _ in range(int(input())):
    stack = []
    word = input()
    for i in word:
        if stack and i==stack[-1]:
            stack.pop()
        else:
            stack.append(i)
    if not stack:
        count+=1
print(count)

✔️ 오늘의 회고

📌 문제 및 시도 방법

스택을 이용해서 문제를 풀었다.

📌 문제 해결 방법

  1. 단어의 수 (n) 만큼 반복
  2. 각 단어가 만약 스택(stack)이 비어있지않고, top과 같으면 stack에서 pop
  3. 만약 스택이 비어있거나 top과 같지 않으면 스택에 넣는다.
  4. 최종 스택이 비어있으면 좋은 단어이므로 개수(count) +1 을 해준다.

📌 새롭게 안 내용

처음에는 if len(stack) == 0 으로 썼었는데, if not stack 일 때 성능이 더 빨랐다.
len(stack)==0 은 len 함수를 통해 stack의 길이를 계산한 후 0 인지 아닌지를 판별하지만,
not stack은 파이썬의 truthy / falsy 특성을 이용해 스택이 비어있으면 false를 반환하여 살짝 더 빠르다.
하지만 반복문에서 엄청 많이 돈다고 가정하면 성능 차이가 많이 날 수 있으므로,
저 방법을 쓰는게 더 나을 것 같다는 생각이 들었다.

📌 내일 학습할 내용

내일의 알고리즘 문제를 풀어보고 이해하기


#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL

profile
꾸준히 성장하는 웹 백엔드 개발자가 되자🔥

0개의 댓글