일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 파이썬 #백준 #알고리즘 #코딩테스트
- 파이썬
- dp
- react #리액트 #동빈나 #나동빈 #유튜브강의
- BFS
- DFS
- 다익스트라
- 프로그래머스
- 다이나믹프로그래밍
- 코딩테스트
- 백준 #파이썬 #알고리즘 #코딩테스트
- react #리액트 #동빈나
- java #자바
- 투포인터
- 백준 #알고리즘 #파이썬 #코딩테스트
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- java #자바 #생활코딩
- css #웹 #생활코딩
- 자바 #java
- 백준
- Dijkstra
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- java #자바 #동빈나
- 재귀
- 백트랙킹
- 알고리즘
- PYTHON
- css #생활코딩 #웹
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- java #자바 #나동빈
Archives
- Today
- Total
커리까지
[백준] 4889번 안정적인 문자열 파이썬 본문
728x90
SMALL
문제
여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 여기서 안정적인 문자열을 만들기 위한 최소 연산의 수를 구하려고 한다. 안정적인 문자열의 정의란 다음과 같다.
- 빈 문자열은 안정적이다.
- S가 안정적이라면, {S}도 안정적인 문자열이다.
- S와 T가 안정적이라면, ST(두 문자열의 연결)도 안정적이다.
{}, {}{}, {{}{}}는 안정적인 문자열이지만, }{, {{}{, {}{는 안정적인 문자열이 아니다.
문자열에 행할 수 있는 연산은 여는 괄호를 닫는 괄호로 바꾸거나, 닫는 괄호를 여는 괄호로 바꾸는 것 2가지이다.
입력
입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우는 없고, 항상 길이는 짝수이다.
입력의 마지막 줄은 '-'가 한 개 이상 주어진다.
출력
각 테스트 케이스에 대해서, 테스트 케이스 번호와 입력으로 주어진 문자열을 안정적으로 바꾸는데 필요한 최소 연산의 수를 출력한다.
예제 입력 1
}{
{}{}{}
{{{}
---
예제 출력 1
1. 2
2. 0
3. 1
제출답안
def count(text, cnt):
cnt += 1
c = 0
while text.find("{}") >= 0:
text = text.replace("{}", "")
c += text.count("{{")
text = text.replace("{{", "")
c += text.count("}}")
text = text.replace("}}", "")
c += text.count("}{") * 2
print(f"{cnt}. {c}")
return cnt
cnt = 0
while True:
text = input()
if text.find('-') >= 0:
break
cnt = count(text, cnt)
- while를 돌면서 안정적인 문자열이면 해당 문자열을 공백으로 바꾼다.
- 그다음에 {{면 해당 {{의 개수를 찾아서 c에 누적한다.
- 그리고 해당 문자를 공백으로 바꾼다.
- 마찬가지로 }}도 위와 같은 방법을 쓴다.
- }{는 두번 돌려야 하기 때문에 카운트에 2를 곱해서 누적한다.
- 마지막으로 해당 문자열의 순서와 누적합을 출력한다.
- 함수에서는 cnt를 계속 받아야 하기 때문에 return을 해서 cnt를 1씩 늘려간다.
- 그리고 밑에 while문에 --가 나오면 반복문을 빠져나간다.
728x90
LIST
'알고리즘 > 풀이' 카테고리의 다른 글
[백준] 1780번 종이의 개수 파이썬 (0) | 2021.05.05 |
---|---|
[프로그래머스] 2020 카카오 인턴십 수식 최대화 파이썬 (0) | 2021.05.02 |
[백준] 20291번 파일 정리 파이썬 (0) | 2021.04.27 |
[백준] 1783번 병든 나이트 파이썬 (0) | 2021.04.22 |
[백준] 20366번 같이 눈사람 만들래? 파이썬 (0) | 2021.04.20 |
Comments