본문 바로가기

Algorithm

[백준] Python - 1316.그룹단어체커

생각

중복하는 단어들이 연속해서 들어오는지에 대한 체크를 해주기 위해 스택을 사용하자고 생각했다. 우선 각 문자가 존재하지 않는다면 스택에 넣어준다. 만약 스택에 현재 abcd 이렇게 들어있고 그 다음으로 d 가 들어온다고 생각했을때는 스택에 추가해주지 않는다. 그 다음으로 계속 진행하다가 현재 스택에는 유니크한 문자들만 존재하는데 만약 abcde에서 d가 또 들어오려고할때 새로운 값과 스택의 마지막 원소가 같지 않을때가 바로 그룹 단어가 아닌 단어이다.

 

Python Code

def groupChecker(s):
    stack = []
    for i,c in enumerate(s):
        if c not in stack:
            stack.append(c)
        else:
            if (i!=0) and (s[i] != s[i-1]):
                return False
    return True
    
if __name__ == "__main__":
    size = int(input())
    cnt=0
    for _ in range(size):
        s = input()
        if(groupChecker(s)):
            cnt+=1
    print(cnt)

'Algorithm' 카테고리의 다른 글

[SWEA] JAVA - 1218 괄호 짝짓기  (0) 2021.02.05
[SWEA] JAVA - 5432.쇠막대기 자르기  (0) 2021.02.05
[정렬 알고리즘] - Heap Sort  (0) 2021.02.03
[정렬 알고리즘] - Quick Sort  (0) 2021.02.03
[SWEA] JAVA - 1208.Flatten  (0) 2021.02.02