[백준 알고리즘] 10799번: 쇠막대기 (Python / 파이썬)

2024. 1. 18. 05:15·알고리즘/백준
문제 접근

() 와 같이 내부가 없는 괄호는 레이저이다.

이외의 괄호들은 쇠막대를 표현한다.

이 부분을 보자.

스택에는 (, (, ( 3개가 들어가 있는 상태에서 레이저가 들어온다.

스택에 무언가 들어가 있다는 것은, 쇠막대기의 끝이 아직 발견되지 않았다는 뜻이고

이는 곧 레이저에 의해 영향을 받는다는 의미가 된다.

 

하나의 막대가 잘리면 두개가 된다.

따라 레이저가 들어올 때 현재 스택의 길이만큼 카운트를 추가해주면 된다.

이때 주의사항으로는 쇠막대기의 시작 지점에서 카운트를 1씩 미리 해줘야한다.

 

정답 코드
#10799번: 쇠막대기

import sys

str = sys.stdin.readline().rstrip()
stack = []
count = 0

for i in range(0, len(str)-1):
    brk = str[i]  #괄호
    next_brk = str[i+1]

    if brk == '(':
        if next_brk == ')':
            count += len(stack)
        else:
            stack.append(brk)
            count += 1
    else:
        if len(stack) != 0 and str[i-1] != '(':
            stack.pop()

print(count)

 

 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저

www.acmicpc.net

 

저작자표시 (새창열림)

'알고리즘 > 백준' 카테고리의 다른 글

[백준 알고리즘] 7576번: 토마토 (Python / 파이썬)  (0) 2024.01.19
[백준 알고리즘] 2504번: 괄호의 값 (Python / 파이썬)  (0) 2024.01.18
[백준 알고리즘] 5430번: AC ( Python / 파이썬 )  (2) 2024.01.15
[백준 알고리즘] 1021번: 회전하는 큐 (Python / 파이썬)  (0) 2024.01.14
[백준 알고리즘] 2493번: 탑 (Python / 파이썬)  (3) 2024.01.10
'알고리즘/백준' 카테고리의 다른 글
  • [백준 알고리즘] 7576번: 토마토 (Python / 파이썬)
  • [백준 알고리즘] 2504번: 괄호의 값 (Python / 파이썬)
  • [백준 알고리즘] 5430번: AC ( Python / 파이썬 )
  • [백준 알고리즘] 1021번: 회전하는 큐 (Python / 파이썬)
gyujh
gyujh
개발 공부 블로그
  • gyujh
    규
    gyujh
  • 전체
    오늘
    어제
    • 분류 전체보기 (86)
      • Backend&DB (3)
      • CS (5)
        • 컴퓨터구조 (1)
        • 소프트웨어공학 (4)
      • JavaScript (2)
      • Git (2)
      • 알고리즘 (73)
        • 개념 (3)
        • 백준 (70)
      • Projects (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    구현
    시간초과
    정렬
    algorithm
    백준
    답
    스택
    에러
    런타임
    답안
    너비우선탐색
    재귀
    정답
    BOJ
    풀이
    알고리즘
    숏코딩
    딕셔너리
    문자열
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
gyujh
[백준 알고리즘] 10799번: 쇠막대기 (Python / 파이썬)
상단으로

티스토리툴바