문제요약
나의 코드 및 설명 - 왜 틀린지 모르겠음...
- 나는 큐를 이용하여 풀어보는 것을 시도해봤다. 그런데 틀렸다고 한다. 백준 질문게시판의 모든 반례가 다 정상적으로 출력되는데 왜 틀린지 모르겠다 ㅠ..
string = list(input())
search = list(input())
ans = 0
i = 0
mini_cnt = 0
while string:
x = string.pop(0)
if x == search[i]:
mini_cnt += 1
i = (i+1)%len(search)
else:
if x == search[0]:
i = 1
mini_cnt = 1
else:
i = 0
mini_cnt = 0
if mini_cnt == len(search):
ans += 1
mini_cnt = 0
print(ans)
다른 코드 및 설명
a = list(input())
b = list(input())
cnt = 0
n = 0
while n <= len(a)-len(b):
if a[n:n+len(b)] == b:
cnt += 1
n += len(b)
else:
n += 1
print(cnt)
피드백
백트래킹 연습하다가 만난 문제. 백트래킹으로 풀이하는 것보다 단순 반복문으로 구현하는 게 나을 것 같아서 시도했는데, 계속 틀렸다고 나왔다. 모든 반례를 입력해도 정상적으로 출력되는데.. 왜 틀린지 모르겠다. 결국 구글링을 했는데 이렇게나 간단히 풀 수 있는 것을 너무 복잡하게 풀어버렸다. 문자열 문제에 대해 약하다는 것을 느꼈다. 생각해보면 문자열 문제만 나오면 머리가 터질 것 같았다. 문자열 문제를 많이 풀어봐야겠다. 문자열 공부하는 김에 회문 문제도 많이 풀어봐야겠다.
'Baekjoon' 카테고리의 다른 글
[백준] 1254 팰린드롬 만들기 (실버2) / 문자열 (0) | 2023.04.27 |
---|---|
[백준] 7785 회사에 있는 사람 (실버5) / 시간초과 해결, 리스트, 딕셔너리 시간복잡도 (0) | 2023.04.27 |
[백준] 1316 그룹 단어 체커 (실버5) (0) | 2023.03.28 |
[백준] 1550 16진수 (브론즈2) / int(input(), 16)) (0) | 2023.03.22 |
[백준] 2606 바이러스 (실버3) / DFS (0) | 2023.03.08 |