728x90
반응형
문제 해결
Counter 함수를 통해 각각 몇 개씩 있는지 쉽게 알 수 있다.
문자열 처음부터 보면서 '0'은 Counter의 절반이 될 때 까지 만나면 정답 문자열에 넣는다.
문자열 처음부터 보면서 '1'은 Counter의 절반이 될 때 까지 만나면 패스한다.
문자열 처음부터 보면서 '1'은 Counter의 절반이 넘어가고 나서 만나면 정답 문자열에 넣는다.
CODE
import sys
import math
from collections import Counter
input = sys.stdin.readline
n = list(str(input()).strip())
X = Counter(n)
a = X['0']//2
b = X['1']//2
answer = ''
for i in range(len(n)):
if n[i] == '0' and X['0'] > a:
answer = answer + '0'
X['0'] -= 1
elif n[i] == '1' and X['1'] > b:
X['1'] -= 1
elif n[i] == '1' and X['1'] <=b:
answer = answer + '1'
print(answer)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 1939 중량제한 (1) | 2024.01.29 |
---|---|
[python] 백준 1138 한 줄로 서기 (1) | 2024.01.11 |
[python] 백준 2638 치즈 (0) | 2023.12.21 |
[python] 백준 13904 과제 (0) | 2023.12.14 |
[python] 백준 10835 카드게임 (0) | 2023.12.13 |
댓글