티스토리 뷰
답을 반환할 ans와 막대기의 개수를 저장할 stick을 생성한다.
다음으로 레이저를 체크할 용도인 flag를 생성한다. 기본값은 False이다.
입력받은 arrangement를 반복문으로 돌려 "("일 때는 stick에 1을 더하고 flag를 True로 전환한다.
")"일 때는 flag의 값에 따라 실행한다.
flag가 True면 레이저이기 때문에 stick에서 1을 빼고 ans에 stick의 값을 더한다. 그리고 flag를 False로 전환한다.
flag가 False일때는 쇠막대기의 끝임을 나타내기 때문에 stick에서 1을 빼고 ans에 1을 더한다.
문제풀이
def solution(arrangement): ans, stick = 0, 0 flag = False for a in arrangement: if a == "(": stick += 1 flag = True else: if flag: stick -= 1 ans += stick flag = False else: stick -= 1 ans += 1 return ans
'문제 풀이 > Programmers' 카테고리의 다른 글
[python3][level 2] H-Index (0) | 2019.04.14 |
---|---|
[python3][level 2] 프린터 (0) | 2019.04.07 |
[python3][level 3] 베스트앨범 (0) | 2019.04.04 |
[python3][level 3] 타일 장식물 (0) | 2019.03.29 |
[python3][level 2] 위장 (0) | 2019.03.28 |
댓글