백준 #12933 오리
코드
import sys
sys.stdin = open("input.txt")
input = sys.stdin.readline
arr = list(input().rstrip())
n = len(arr)
visited = [False] * n
duck = ["q", "u", "a", "c", "k"]
answer = 0 # 총 오리 숫자
for start in range(n):
if visited[start]:
continue
idx = 0 # 울음소리를 트래킹
check = False
for i in range(start, n):
if visited[i]:
continue
if arr[i] == duck[idx]:
visited[i] = True
idx += 1
if idx == 5:
check = True
idx = 0
if check:
answer += 1
if idx or not visited[start]:
print(-1)
exit()
print(answer)
풀이
5번 정도의 시도 끝에 맞춘 문제이다.
idx
와 check
를 통해 완벽한 울음소리가 맞는지 판단하였다.
visited
를 통해서는 이미 다른 오리의 울음소리이면 지나치도록 구현했다.
처음에 계속 틀렸는데 idx
가 0이 아닌 경우에만 올바르지 않은 울음소리라고 생각해서였다.
idx
가 0이여도 안쪽의 for
문으로 들어가지 못한다면 visited
에 체크가 안되기 때문에
이 경우의 조건도 추가해줘서 맞췄다.
구현은 언제 풀어도 어렵다 ㅎㅎ 열심히 하자!
댓글남기기