Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- jwt
- 인프콘 2024
- @FeignClient
- TiL
- 빈 조회 2개 이상
- 99클럽
- JavaScript
- 취업리부트코스
- 디자인패턴
- 항해99
- 1주일회고
- KPT회고
- 전략패턴 #StrategyPattern #디자인패턴
- Spring multimodule
- spring batch 5.0
- 빈 충돌
- 커스텀 헤더
- 개발자부트캠프추천
- infcon 2024
- 구글 OAuth login
- 코딩테스트 준비
- Python
- 디자인 패턴
- 파이썬
- 단기개발자코스
- 프로그래머스 이중우선순위큐
- 개발자 취업
- 프로그래머스
- DesignPattern
- jwttoken
Archives
- Today
- Total
m1ndy5's coding blog
[자료구조] 백준 10799번 쇠막대기 with Python 본문
https://www.acmicpc.net/problem/10799
import sys
sticks = sys.stdin.readline().rstrip()
op = 0
cnt = 0
for i in range(len(sticks)-1):
if sticks[i] == '(' and sticks[i+1] == ')':
cnt += op
elif sticks[i] == sticks[i+1]:
if sticks[i] == '(':
op += 1
else:
cnt += 1
op -= 1
print(cnt)
생각한 방법은 () 레이저 발사할 때 기준으로 몇개의 괄호가 열려있는지(몇개의 막대가 있는지)를 고려했다.
(((이렇게 3개가 열려있으면 일단 한번 자르면 3조각이 생길 것이고 괄호가 닫힐 때까지는 레이저를 발사할 때마다 토막이 날것이기 때문이다.
)가 들어오게 되면 그 땐 +1을 해줘야한다. 왜냐하면 한 막대를 2번 나누면 3개가 생기므로
닫는 괄호가 들어오면 cnt += 1을해주고 열린 괄호개수(op) -= 1을 해준다.
두개씩 고려했기 때문에 () -> 레이저 (( -> 열릴 때 )) -> 닫힐 때로 고려했다. -> )(까지 고려하면 중복이 일어남
'알고리즘 with python > 자료구조' 카테고리의 다른 글
[자료구조] 백준 2493번 탑 with Python (0) | 2023.03.23 |
---|---|
[자료구조]백준 1874번 스택 수열 with Python (0) | 2023.03.22 |
[자료구조] 백준 1406번 에디터 with Python (0) | 2023.03.22 |
[자료구조] 백준 1935번 후위 표기식2 with python (0) | 2023.03.22 |
[자료구조] 백준 10773번 제로 with python (0) | 2023.03.22 |