일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 1182
- Python
- 코테
- 1260
- itertools
- 매일11시
- 안드로이드
- Kotlin
- 11053
- 순열
- expo
- 11054
- 11기
- 백준
- 최소공배수
- lcm
- Combination
- 괄호
- 앱
- LCS
- Android
- 11057
- 홈화면
- 뒤로가기
- 코틀린
- 6603
- 나머지
- permutation
- 9095
- 파이썬
Archives
- Today
- Total
황소개발자
백준 14238 파이썬 python : 출근 기록 @@황소처럼 우직하게@@ ㅋㅋ재밋네 본문
반응형
재밌어..ㅋㅋ
S = input().strip()
n = len(S)
dp = [[[[[0 for _ in range(3)] for _ in range(3)] for _ in range(51)] for _ in range(51)] for _ in range(51)]
ans = [0] * 50
def go(a, b, c, p1, p2):
if a < 0 or b < 0 or c < 0:
return False
if a == 0 and b == 0 and c == 0:
return True
if dp[a][b][c][p1][p2]:
return False
dp[a][b][c][p1][p2] = True
ans[n-a-b-c] = 'A'
if go(a - 1, b, c, 0, p1):
return True
if p1 != 1:
ans[n-a-b-c] = 'B'
if go(a, b - 1, c, 1, p1):
return True
if p1 != 2 and p2 != 2:
ans[n-a-b-c] = 'C'
if go(a, b, c - 1, 2, p1):
return True
return False
an = 0
bn = 0
cn = 0
for s in S:
if s == 'A':
an += 1
elif s == 'B':
bn += 1
elif s == 'C':
cn += 1
if go(an, bn, cn, 0, 0):
print(''.join(ans[:n]))
else:
print(-1)
반응형
'백준 문제 풀이' 카테고리의 다른 글
백준 12996 파이썬 python : Acka @@황소처럼 우직하게@@ dp의 진리이다.. (0) | 2020.04.24 |
---|---|
백준 12026 파이썬 python : BOJ 거리 @@황소처럼 우직하게@@ 시간초과 포비아 쉣더퍽 (1) | 2020.04.24 |
백준 12969 파이썬 python : ABC @@황소처럼 우직하게@@dp 끝판왕이네 이거.. (0) | 2020.04.24 |
백준 15486 파이썬 python : 퇴사 2 @@황소처럼 우직하게@@ 런타임에러 뜨지? 일로와~ (0) | 2020.04.23 |
백준 11060 파이썬 python : 점프 점프 @@황소처럼 우직하게@@ 뭐냐 싱겁게 (0) | 2020.04.23 |
Comments