Coding/백준
[백준] 10799 - 쇠막대기 - (python 파이썬)
Coding Kitsune
2022. 2. 5. 11:31
문제링크 : https://www.acmicpc.net/problem/10799
10799번: 쇠막대기
여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저
www.acmicpc.net
풀이과정 :
남들은 다 스택을 사용한것 같은데, 본인은 좀 다르게 풀었다.
그냥 레이저의 역할은 범위 내 쇠막대기를 자르는(두배로 만들어주는) 역할이고,
범위 내 쇠막대기가 몇개인지만 추적해주면서 레이저가 나오면 범위내 쇠막대기 만큼 더해주고,
쇠막대기가 끝나면 범위 내 쇠막대기의 개수를 줄여주고, 하면 풀리는 문제였다.
스택을 쓰면 더 편한가,,? 싶어서 남들의 풀이를 봤는데, 그다지 더 간단한거 같지도 않다.
lst = list(input())
count = 0
range_metal = 0
i = 0
while i < len(lst):
if lst[i] == "(":
if lst[i+1] == ")": #레이저의 경우
count += range_metal #범위에 있는 쇠들만큼 더한다(두배가 되기때문)
i += 1 #레이저 인덱스를 넘어가기 위함
else:
count += 1 #레이저가 아닌 경우 새로운 막대가 쌓이는것
range_metal += 1
else:
range_metal -= 1 #범위 내의 쇠막대가 하나 줄어드는것
i += 1
print(count)
후기 : 5분컷 해서 기분이 너무좋다...!