-Code
1. 처음 코드
duck = "quack"
s = input()
visited = [False] * len(s)
cnt, p = 0, 0
for i in range(len(s)):
if s[i] == 'q' and not visited[i]:
for j in range(len(s)):
if not visited[j] and duck[p % 5] == s[j]:
visited[j] = True
p += 1
if p % 5 < 5:
print(-1)
exit()
if p % 5 == 0:
cnt += 1
p = 0
print(cnt)
처음에 quack에 해당이 되면 지우는 식으로 짰다가 해결이 안돼서 다른 방법을 찾아본 결과 깊이 탐색과 비슷하게 visited를 두어서 위 코드와 같이 짜서 예제 입출력은 잘 나왔으나 특정 부분에서 해결이 안 돼서 다른 방법을 다시 찾았습니다.
2. 수정 코드
duck = "quack"
s = input()
if len(s) % 5 != 0:
print(-1)
else:
visited = [False] * len(s)
cnt, p = 0, 0
for i in range(len(s)):
if s[i] == 'q' and not visited[i]:
flag = True
for j in range(len(s)):
if not visited[j] and duck[p % 5] == s[j]:
visited[j] = True
if s[j] == 'k' and flag:
cnt += 1
flag = False
p += 1
if not all(visited) or cnt == 0:
print(-1)
else:
print(cnt)
그래서 위와 같은 코드가 나왔는데 예외를 빠뜨리고 수정하면서 잘못 고치는 부분이 생겨서 시간이 오래 걸렸습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 11725번 트리의 부모 찾기 (0) | 2022.05.15 |
---|---|
[백준/파이썬] 1972번 놀라운 문자열 (0) | 2022.05.15 |
[백준/파이썬] 9242번 폭탄 해체 (0) | 2022.05.14 |
[백준/파이썬] 4396번 지뢰 찾기 (0) | 2022.05.14 |
[백준/파이썬] 5534번 간판 (0) | 2022.05.14 |