*문제 출처는 백준에 있습니다.
문제 제목: 그룹 단어 체커 / 1316번 (실버 5단계)
문제 사이트: https://www.acmicpc.net/problem/1316
문제 설명
나의 풀이
def solution(s):
stack = []
alpha = {chr(i + 96) : 0 for i in range(1, 27)}
for word in s:
if not stack:
stack.append(word)
continue
if stack[-1] == word:
continue
elif stack[-1] != word:
stack.append(word)
for st in stack:
alpha[st] += 1
if alpha[st] == 2:
return False
return True
# 단어의 개수
N = int(input())
# 단어 모아둔 곳
words = []
# 카운트
count = 0
for _ in range(N):
word = list(input())
if solution(word):
count += 1
print(count)
※ 알아야 할 것
for i in range(N):
word = input()
for j in range(0, len(word)-1):
if word[j] == word[j+1]:
pass
elif word[j] in word[j+1:]:
cnt -= 1
break
이렇게 풀어도 정답은 나온다 하지만 위 풀이는 시간 복잡도 상으로 봤을 때 반복문 두 번 반복되기 때문에 티어가 높은 문제라면 시간 초과가 발생할 수 있다.
'코딩테스트(프로그래머스 & 백준) > 백준-Python' 카테고리의 다른 글
백준 / 가장 긴 증가하는 부분 수열 4 / 14002번 / Python (3) | 2024.08.28 |
---|---|
백준 / 회의실 배정 / 1931번 / Python (0) | 2024.08.27 |
백준 / 최솟값 찾기 / 11003번 / Python(PyPy3 제출) (0) | 2024.08.23 |
백준 / 토마토 / 7576번 / Python (0) | 2024.08.22 |
백준 / 0과 1 / 8111번 / Python (0) | 2024.08.16 |