반응형

1. 문제 소개

  • 스택, 자료구조 문제에 해당한다.

 

2. 코드

# idea 
# 	- 선끼리 교차하지 않는다 -> 인접하는 대칭 단어가 짝을 이루고, 짝을 이룬 단어들 바깥의 단어들은 같은 거리로 짝을 이룬다.
# 	- 정확히 다른 위치의 글자와 짝을 이룬다 -> 홀수 X

# algorithm 
# 	- stack 에 word character 를 하나씩 push
# 	- 이전 character 가 동일한 단어는 pop() 
# 	- stack 의 크기가 0 인 경우는 good word 로 판단
 
def input_test_case():
    N = int(input())
    words = []
    for i in range(0,N):
        words += [input()]
        
    return words

def check_good_word(word):
    stack = []
    pre_char_idx = -1

    for c in word :
        if pre_char_idx >=0 and stack[pre_char_idx] == c :
            stack.pop()
            pre_char_idx -=1
        else:
            stack.append(c)
            pre_char_idx+=1
        
    return True if len(stack) == 0 else False
    

def solution():
    words = input_test_case()
    count = 0 
    for w in words:
        if check_good_word(w):
            count+=1
            
    print(count)       
    
solution()

3. 코멘트

  • 참고로 예제 3번의 입력 예제는 아래 처럼 교차하지 않도록 짝을 이룬다.

  • 육아로 한 동안 스터디를 진행하지 못하다가, 오랜만에 했는데 즐겁고 뿌듯했다.
  • 오랜 기간 함께 스터디에 참여해주셨던, 찬의님이 취업해서 너무 기쁘다. ( 대기업으로 가셨다 !! )
  • 찬의님과 함께 오래 함께한 유진님께서 사고로 중환자실에 입원하셨는데, 다행이 수술은 잘 진행됐다고 했다. 빨리 나으셔서 밝은 모습으로 뵙길 기도한다. 
반응형

+ Recent posts