백준 12933. 오리 (파이썬)
# [BOJ] 12933. 오리 2023-03-09
S = input()
ans = 0
A = []
L = ['0', 'q', 'u', 'a', 'c', 'k']
for i in range(len(S)):
s = S[i]
if L.index(s) == 1:
# q가 나온 경우
t = 1
for j in range(len(A)):
if L.index(A[j][-1]) == 5:
A[j] += s
t = 0
break
if t == 1:
A.append(s)
else:
t = 1
for j in range(len(A)):
if L.index(A[j][-1]) + 1 == L.index(s):
t = 0
A[j] += s
break
if t == 1:
ans = -1
break
for a in A:
if a[-1] != 'k':
ans = -1
if ans == -1:
print(ans)
else:
print(len(A))
못 풀던 문제 다시 도전해서 성공
q가 등장했을 때와 다른 알파벳이 등장했을 때를 분기
q의 경우 -> k로 끝난 값이 있는지 확인하고 없으면 새로 append
q가 아닌 경우 -> 현재 존재하는 값 중에서 이어질 수 있으면 지속, 아니면 바로 break
break로 끝나지 않은 경우 완성된 배열 항목의 수가 정답이 된다
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 17608. 막대기 (python / Java) (0) | 2023.03.14 |
---|---|
[BOJ] 10986. 나머지 합 (Java / Python) (0) | 2023.03.12 |
[BOJ] 11660. 구간합 구하기 5 (Java) (0) | 2023.03.09 |
[BOJ] 1417. 국회의원 선거 (python) (0) | 2023.02.07 |
[BOJ] 14916. 거스름돈 (python) (0) | 2023.02.03 |