쇠막대기

    [python] SWEA - 5432. 쇠막대기 자르기

    [python] SWEA - 5432. 쇠막대기 자르기

    문제 해결 1. D4 | 큐, 스택 2. 주어진 인풋값을 차례로 하나씩 큐에 넣을 준비를 한다. 3. '(' 이면 큐에 넣는다. 4. ')' 일 때 (1) 이전에 '(' 이 나왔다면 레이저이므로 잘라준다. - 이 때 큐 안에 있는 갯수 만큼 조각이 나온다. (2) 이전에 ')' 이 나왔다면 끝부분이다. 큐 안에서 시작부분을 하나 꺼내주고 조각 갯수를 +1한다. 💨 전에 풀어 봤던 느낌이 나는 문제이다. 큐스택을 활용해 조건에 맞게 꺼내주고 빼주고 하면 된다. 소스 코드 from _collections import deque for tc in range(1, 1+int(input())): iron_bar = input() q = deque() cnt = 0 for i in range(len(iron_bar..

    [python] 백준 - 10799. 쇠막대기

    [python] 백준 - 10799. 쇠막대기

    문제 해결 1. 스택을 활용한 문제. S3 2. '(' 가 나오면 막대기의 시작점이라 생각하고 stack 에 쌓는다. 3. ')' 이 나왔을 때 두가지의 경우 (1) 이전에 '(' 가 나온 경우: 쇠막대기가 아니라 레이저 이므로 잘라준다. (2) 이전에 ')' 가 나온 경우: 쇠막대기의 끝 부분 이다. 4. 레이저로 자른경우는 stack 에 쌓여있는 막대기만큼 count를 더해준다. 5. 쇠막대기의 끝부분이 나온경우 막대히 하나만큼 count를 더해준다. 🚗 소스 코드 bars = input() stack = [] cnt = 0 # '('를 막대기의 시작점으로 주고 '()' 이렇게 여는괄호와 닫는괄호가 연속으로 나오면 레이저로 취급한다. for i in range(len(bars)): if bars[i]..