생각
중복하는 단어들이 연속해서 들어오는지에 대한 체크를 해주기 위해 스택을 사용하자고 생각했다. 우선 각 문자가 존재하지 않는다면 스택에 넣어준다. 만약 스택에 현재 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 |