-
[99클럽 코테 스터디 7일차 TIL + 스택/큐] 백준 10799 쇠막대기 Python코딩테스트/TIL 2025. 4. 8. 18:35
오늘의 학습 키워드
스택/큐
공부한 내용 본인의 언어로 정리하기
문제
https://www.acmicpc.net/problem/10799


코드
a = list(input()) pipe = [] count = 0 for i in range(len(a)): if a[i] == '(': pipe.append('(') else: pipe.pop() if a[i-1] == '(': count += len(pipe) else: count += 1 print(count)'(' ')'의 짝을 찾으면서 '()' 레이저를 찾아 파이프를 절단 내는게 가장 중요하다. 우선 '('를 받을 때마다 파이프에 넣고, 이후 ')'가 나올 때마다 저장되어 있는 다른 짝인 '('를 하나씩 빼준다. 이후 ')'의 전이 '(' 모양 즉 레이저라면 이전 파이프에 들어가 있던 모든 파이프들이 반으로 절단나야 하므로 count에 파이프에 들어가있는 '('의 개수 만큼 더해준다.
오늘의 회고
스택(Stack): 쌓고, 꺼내는 구조
스택은 후입선출(LIFO, Last-In-First-Out) 구조 - 마지막에 넣은 데이터가 가장 먼저 나온다.
스택의 기본 연산
push(item) 스택에 데이터 추가 pop() 가장 위의 데이터 제거 및 반환 peek() or top() 가장 위의 데이터를 제거하지 않고 반환 isEmpty() 스택이 비어있는지 확인 큐(Queue): 줄 서서 처리하는 구조
큐는 선입선출(FIFO, First-In-First-Out) 구조 - 먼저 넣은 데이터가 먼저 나온다.
큐의 기본 연산
enqueue(item) 큐에 데이터 추가 dequeue() 가장 앞의 데이터 제거 및 반환 peek() or front() 가장 앞의 데이터를 제거하지 않고 반환 isEmpty() 큐가 비어있는지 확인 오늘은 큐와 스택에 대해 알아볼 수 있는 간단한 문제를 해결하였다. 평소에는 한 문제에 집중하여 풀었는데 다양하나 유형의 문제를 접할 수 있어서 좋은 것 같다.
'코딩테스트 > TIL' 카테고리의 다른 글
[99클럽 코테 스터디 9일차 TIL 그리디] 백준 2437 저울 Python (1) 2025.04.11 [99클럽 코테 스터디 8일차 TIL 정규식] 백준 9996 한국이 그리울 땐 서버에 접속하지 Python (0) 2025.04.10 [99클럽 코테 스터디 6일차 TIL bfs/dfs] 백준 4963 섬의 개수 python (0) 2025.04.07 [99클럽 코테 스터디 5일차 TIL] 백준 2559 수열 Python 투포인터 (0) 2025.04.04 [99클럽 코테 스터디 4일차 TIL] 백준 2468 안전 영역 Python 깊이/너비 우선 탐색(DFS/BFS) (0) 2025.04.04