안녕하세요 ?

오늘은 스택과 관련한 알고리즘을 플어봤어요 ,

백준

stack은 대표적인 자료구조로, LIFO의 특성을 대표하는 구조인데요

N으로 Cycle 횟수를 지정하고

stack과 +,-로 pop과 push를 시각화 할 수 있게 result 리스트도 준비했습니다.

반복문을 통해 N으로 들어온 사이클이 시작이되면 count가 증가하며 count가 N까지 돌게됩니다, 이때 stack에 append를 이용해 해당 count를 push해주고 결과인 ‘+’를 result로 append 해줍니다.

stack의 마지막숫자가 N의 숫자와 같다면 pop을 하고, 같지 않을때 까지 반복수행합니다. 이 과정에서 pop이 되는경우 resulf에는 ‘-‘이 담깁니다.

하나의 조건이 더 있는데, pop과 push 가 불가능한 상태에는 NO를 출력하고, 해당 조건들을 다 만족시킨 상태로 반복문 한 사이클이 돌 때 줄바꿈을 통해 구분한다. — 백준 이번에 푼 문제는 group_word_check입니다, input 값으로 Cycle의 횟수를 받아오며 다음줄 부터는 str으로 date를 받아옵니다.

단어의 시작 단어를 이용해 그 단어의 init 즉, 같은 이름을 가진 친구에게 접근하고 그 해당 index를 group화 합니다.

조금더 쉽게 풀기 위해 find라는 함수를 사용 했으며, find는 입력받은 key 를 이용해 list의 끝자락까지 접근하여 찾지 못하는경우에 실패를 return합니다.