๋ฐ์ํ
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 | 31 |
Tags
- kakao
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์คํ
- ์์ ํ์
- sort
- Blind
- ๋ฐฑ์ค
- SSAFY
- ์๋ฃ๊ตฌ์กฐ
- BFS
- algorithm
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ์๊ณ ๋ฆฌ์ฆ
- SWEA
- Python
- ํ์ด์ฌ
- SW์ญ๋ํ ์คํธ
- Backjoon
- ๊ทธ๋ํ
- ์ฝ๋ฉํ ์คํธ
- ์นด์นด์ค
- boj
- ์ผ์ฑ
- DP
- ํ๋ก๊ทธ๋๋จธ์ค
- DFS
- ์ฝํ
- ์ธํผ
- javascript
- ํํ
Archives
- Today
- Total
๋ง์ํ
[python] ํ๋ก๊ทธ๋๋จธ์ค - 110 ์ฎ๊ธฐ๊ธฐ(์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2) ๋ณธ๋ฌธ
Algorithm Problem/Python
[python] ํ๋ก๊ทธ๋๋จธ์ค - 110 ์ฎ๊ธฐ๊ธฐ(์๊ฐ ์ฝ๋ ์ฑ๋ฆฐ์ง ์์ฆ2)
deo2kim 2022. 2. 10. 23:04๋ฐ์ํ

๐ค๋ฌธ์ ํด๊ฒฐ
1. ๋ชจ๋ 110 ์ฐพ๊ธฐ
2. ๋๋จธ์ง์ 0์ด ์์ผ๋ฉด ๊ทธ 0๋ค์ 110 ๋ค ๋ถ์ด๊ณ
3. 0์ด ์์ผ๋ฉด ์์ 110์ ๋ค ๋ถ์ธ๋ค
์์ฝ์ฑ ํด์ค์ง ๋ณด๊ณ ํ์๋๋ฐ ๋ต ๊ตฌํ๋๊ฒ ํท๊ฐ๋ ค์ ๋ง์ด ๊ณ ๋ฏผํ ๋ฌธ์
๐ป์์ค ์ฝ๋
def solution(s):
answer = []
for x in s:
# ๋ชจ๋ 110 ์ฐพ๊ธฐ
# 110 ์ฐพ์ผ๋ฉด ๋ณํ๋ x์์ ๋ ์ฐพ๊ธฐ
one_one_zero_cnt = 0
stack = []
for x_one in x:
if x_one == '1':
stack.append(x_one)
else:
if len(stack) >= 2 and stack[-1] == '1' and stack[-2] == '1':
stack.pop()
stack.pop()
one_one_zero_cnt += 1
else:
stack.append(x_one)
x = ''.join(stack)
# ๋ค์์๋ถํฐ ์ฒดํฌํด์ 0์ด ๋์ค๋ฉด ๊ทธ 0 ๋ค์ ๋ชจ๋ 110 ๋ถ์ด๊ธฐ
# 0 ์์ผ๋ฉด ๋๋จธ์ง๊ฐ ์ ๋ถ 1๋ก ๊ตฌ์ฑ๋์ด ์์ผ๋ฏ๋ก ๋ชจ๋ 110์ ์์ ๋ถ์ด๊ธฐ
for i in range(len(x) - 1, -1, -1):
if x[i] == '0':
answer.append(x[:i + 1] + ('110' * one_one_zero_cnt) + x[i + 1:])
break
else:
answer.append('110' * one_one_zero_cnt + x)
return answer
๐๋ฌธ์ ํ์ธ
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค
๋งํฌ: 110 ์ฎ๊ธฐ๊ธฐ
๋ฐ์ํ