일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 인터섹션
- 결정 알고리즘
- 타입 좁히기
- CORS
- map
- dfs
- autosize
- 이분 검색
- ESlint
- 호이스팅
- 투포인터
- RTK Query
- 공변성
- React
- app router
- CI/CD
- 반공변성
- async/await
- webpack
- Jest
- 무한 스크롤
- recoil
- Cypress
- 태그된 유니온
- 리터럴 타입
- SSR
- TS
- useAppDispatch
- tailwind
- Promise
Archives
- Today
- Total
짧은코딩
10799 쇠막대기 본문
반응형
https://www.acmicpc.net/problem/10799
내 풀이(맞음)
x = input()
x = x.replace('()', '1')
ary = []
sum = 0
for i in range(len(x)):
if x[i] == '1' and len(ary) == 0:
continue
elif x[i] == '1':
for j in range(len(ary)):
ary[j] += 1
elif x[i] == '(':
ary.append(0)
elif x[i] == ')':
sum += ary[-1]+1
ary.pop()
print(sum)
레이저를 1로 바꾼다. 그리고 sum에 자른 막대의 개수를 저장한다. 반복문에서 첫번째 조건으로 1이고 ary가 비어있으면 넘어간다. 두번째 조건은 1이면 막대기를 잘라서 1개씩 추가해준다. 세번째로는 '('이면 막대기 하나를 추가한다. 마지막으로는 ')'이면 ary의 마지막에 1을 더하고 sum에 더하고 삭제한다. 1을 더하는 이유는 막대기를 자른 횟수를 저장한거라서 잘린 막대기 개수에는 1을 더해줘야한다.
반응형
Comments