초원에 놓았을 수 있는 공의 개수의 최솟값을 구하는 문제.
T = int(input()) # 테스트 케이스의 수 T
for test_case in range(1, T+1):
field = input() # 초원
answer = 0
N = len(field) # 초원의 길이
i = 0
while(i < N): # 초원일때
if(field[i] == "(" and field[i+1]==")"): # 공 1개
answer += 1
i += 2 # 다음 번 반복으로 건너뜀
continue
elif(field[i] in ["(", ")"]): # 풀로 가려진 공 1개
answer += 1
i += 1 # 반복변수 ++
print("#%d %s" %(test_case, answer))
[문제풀이]
|..(|.||)||||.().
이렇게 초원에 풀이 쏟아진 형태가 있다.
() : 공 1개
(| : 풀로 가려진 공 왼쪽
|) : 풀로 가려진 공 오른쪽
그럼 이렇게, 아무것도 가려지지 않은 공.
그리고 풀로 가려진 공으로 판단해서 각기 세주면 된다.
처음 완전한 공일 경우엔 1개를 세주고,elif로 반쪽만 발견하면 1개씩 세주는 걸로 마무리!
'코딩테스트 > SWEA' 카테고리의 다른 글
| [Python, 파이썬] SWEA 11445. 무한 사전 (1) | 2024.11.11 |
|---|---|
| [Python, 파이썬] SWEA 11285. 다트 게임 (1) | 2024.11.11 |
| [Python, 파이썬] SWEA 22574. 높은 곳으로 (1) | 2024.11.11 |
| [Python, 파이썬] SWEA 4579. 세상의 모든 팰린드롬 2 (1) | 2024.11.11 |
| [Python, 파이썬] SWEA 4522. 세상의 모든 팰린드롬 (0) | 2024.11.11 |