티스토리 뷰

코딩테스트/백준

백준-1316(파이썬)

김쓰로그 2022. 8. 23. 19:02

https://www.acmicpc.net/problem/1316

 

1316번: 그룹 단어 체커

그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때

www.acmicpc.net

문제생각

어떻게 이미 연속된 문자가 나왔고 끝났는데 다시 같은 문자가 나왔는가를 어떻게 코드로 풀어낼까 고민을 해보았다. 

그래서 나는 리스트 공간을 하나 활용하기로 했다.

 

문제풀이

  1. 문자를 입력받고 Loop를 돌린다.
  2. 알파벳 하나가 리스트(비교를 위한 공간, 내 코드에서는 stack) 안에 없다면 append한다.
  3. 만약 리스트안에 있고 리스트이 마지막 문자와 같지 않다면 이는 중복으로 알파벳이 연속으로 출현한 것이 아니기에 break를 한다. 
n=int(input())

stack, ans=[], 0
for _ in range(n):
    word=input()
    for i in word:
        if(i not in stack):
            stack.append(i)
        elif(i in stack and stack[-1]!=i):
            break
    else:
        ans+=1
    stack=[]
print(ans)

 

음... 그런데 저 방법 말고도 직접 다음 문자와 비교하여 문제를 해결할 수도 있을 것 같다

'코딩테스트 > 백준' 카테고리의 다른 글

백준-19637(파이썬)  (0) 2022.09.30
백준-2108(파이썬)  (0) 2022.08.29
백준-7568(파이썬)  (0) 2022.08.29
백준-1978(파이썬)  (0) 2022.08.23
백준-4673(파이썬)  (0) 2022.08.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함