언젠가는
(파이썬) 백준 10799번 쇠막대기 파이썬 python3 본문
괄호가 ()한번에 닫히면 레이저, 나중에 닫히면 막대의 끝부분임을 알 수 있고, 레이저는 현재의 막대기 개수만큼 자른다는 사실을 통해 정답을 구할 수 있습니다.
1.
a = list(input())
a에 괄호들을 입력받습니다.
2.
b= 0
ans=0
b에는 끝나지 않은 막대기 개수를 넣어줄 것입니다.'('의 갯수 '('는 나중에 ')'를 만나게 되면 끝나고, 한번에 만나면 레이저입니다.
3.
for i in range(len(a)):
if a[i]=='(':
b+=1
인덱스로 '('인 친구들을 찾아서 b에 +해줍니다.
else:
')'인 친구들을 만났는데,
if a[i-1]=='(':
b-=1
ans+=b
그 전의 값이 '('이면 레이저입니다.
레이저는 막대기에서 탈락이므로 b에서 -1합니다.
레이저는 앞에 있는 막대기들 개수만큼 자르기 때문에 ans에 b의 개수(막대개수)만큼 더합니다.
else:
b-=1
ans+=1
이것은 그 전의 값이 '('가 아닌 경우 입니다. 레이저가 아니므로 앞의 '('와 쌍을 이룬 막대의 끝입니다. 막대의 끝부분도 잘린 부분이 되므로 ans에 1을 더하고, 막대가 되기 위한 친구들을 모아놓은 b에서는 1을 빼줍니다.
print(ans)
'IT > 코딩' 카테고리의 다른 글
(파이썬) 백준 6588 골드바흐의 추측 파이썬 풀이 (0) | 2022.08.11 |
---|---|
(파이썬) 백준 11655번 ROT13 파이썬 풀이, Python3 (0) | 2022.08.10 |
(파이썬) 백준 1158 - 요세푸스 문제 python3 (0) | 2022.08.05 |
(파이썬) 백준 1406 - 에디터 python3 (0) | 2022.08.04 |
(파이썬) 백준 9012번 - 괄호() (0) | 2022.08.03 |
Comments