14555. 공과 잡초

홍범선·2023년 4월 18일
0

SW Expert Academy

목록 보기
3/18

14555. 공과 잡초

문제

풀이

공의 개수의 최소값을 구하기 위해선 잡초에 완전히 가려진 것은 건너 뛴다.
즉 ||일 때 공이 있을 수도 있지만 완전히 가려졌기에 없다고 보는 것이다.
하지만 |)일 때에는 반 쪽만 가려졌기에 카운트해야한다.
마찬가지로 (|도 카운트 해야한다.
() 완전히 다 나온 것도 카운트 해야한다. 이것을 코드화 하면 다음과 같다.

for test_case in range(1, T+1):
    arr = ['?']
    for s in input():
        arr.append(s)
    arr.append('?')
    answer = 0
    for i in range(1, len(arr) - 1):
        if arr[i] == "(" and arr[i + 1] == "|":
            answer += 1
        elif arr[i] == ")" and arr[i - 1] == "|":
            answer += 1
        elif arr[i] == "(" and arr[i+1] == ")":
            answer += 1
    print("#" + str(test_case) + " "+ str(answer))

앞 뒤에 ? 넣은 이유는 에러를 막기 위해서이다. 만약 인덱스 0자리에 )라면 i-1에서 에러가 발생하기 때문에 dummy값 ?를 앞뒤로 추가하였다.

profile
날마다 성장하는 개발자

0개의 댓글