반응형
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWVl47b6DGMDFAXm
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
1. Stack 소스코드
# stack으로 풀기
T = int(input())
for tc in range(1, T+1):
iron_bar = input()
#실제로 철봉이 담길 리스트
s = []
ans = 0
for i in range(len(iron_bar)):
# 열릴 괄호라면 s 리스트에 넣어놓기
if iron_bar[i] == '(':
s.append('(')
else:
# 무조건 꺼내기
s.pop()
if iron_bar[i-1] == '(':
ans += len(s)
else:
ans += 1
print("#{} {}".format(tc, ans))
2. for 소스코드
T = int(input())
for tc in range(1, T+1):
iron_bar = input()
cnt = 0 # 막대 수
ans = 0 # 정답
for i in range(len(iron_bar)):
# 열린 괄호라면 막대 추가
if iron_bar[i] == '(':
cnt += 1
else:
# 닫힌 괄호라면 막대감소
# 레이저라면 당연히 잘못 세었으니까 빼는게 맞다.
# 아니라면 어차피 철봉 끝이니 빼는게 맞다.
cnt -= 1
# 레이저
if iron_bar[i-1] == '(':
# 레이저로 인해서 잘린 막대들이 생겼으므로
ans += cnt
else:
# 막대 끝이라는 뜻
ans += 1
print("#{} {}".format(tc, ans))
반응형
'알고리즘 > SWEA' 카테고리의 다른 글
[파이썬] [SWEA] 1210. [S/W 문제해결 기본] 2일차 - Ladder1 (0) | 2021.02.20 |
---|---|
[파이썬] [SWEA] 1221. [S/W 문제해결 기본] 5일차 - GNS (0) | 2021.02.20 |
[파이썬] [SWEA] 1216. [S/W 문제해결 기본] 3일차 - 회문2 (0) | 2021.02.20 |
[파이썬] [SWEA] 5356. 의석이의 세로로 말해요 (0) | 2021.02.20 |
[파이썬] [SWEA] 1979. 어디에 단어가 들어갈 수 있을까 (0) | 2021.02.20 |
댓글