이직하고만다(분노)

99클럽 코테 스터디 8일차 TIL + 프로그래머스 스택/큐

xxo_ohii 2024. 7. 29. 21:41
728x90

 

 

- 오늘의 학습 키워드 : 스택/큐

- 문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12909
공부한 내용 본인의 언어로 정리하기

def solution(s):
    answer = True					# return할 answer을 True로 초기화
    sTextArray = []					# 문자열을 담을 array선언(스택)
    for i in s:						# for문으로 문자열 s의 요소들을 순회
        if i == '(':				## 만약에 문자열 s의 i인 요소가 '(' 인경우 실행하는 조건문
            sTextArray.append(i)	# array인 sTextArray에 append()
 
 		else:						## i인 요소가 '('가 아닌경우 실행하는 조건문 == ')'라는거쥐
            if not sTextArray: 		# 'sTextArray가 비어있을 경우 실행'하는 조건문
                answer = False		# : answer값을 False로 한다. => ')'가 나오면 괄호()가아님
                break				# 더 볼것도 없으니 탈출~ (break)
            sTextArray.pop()		# 그리고 sTextArray에 저장되어있는거(='c')를 pop(삭제)
    
    if sTextArray:					#for문을 순회했는데 스택 aTextArray에 요소가 있으면 실행하는 조건문
        answer = False				#요소가 있으면 안되니까 false리턴

    return answer

 

왜 코드블럭이 깨지는지 모르겠지만... 아래 캡쳐본 참고해주세용


- 오늘의 회고
   오늘도 스택문제로 append했다가 pop해서 푸는 문제다!!

문제 해결의 자세한 내용은 #에 달린 주석을 참고하면 될듯합니다.

 

여는 괄호는 스택에 추가되고, 닫는 괄호는 스택에서 여는 괄호를 제거하는데 모든 문자를 순회한 후 스택이 비어 있지 않으면

짝을 이루지 못한 여는 괄호가 남아 있는 것이므로 올바르지 않은 괄호 문자열로 판단해서 false.

스택 (Stack)

스택은 후입선출(LIFO, Last In First Out) 구조입니다. 파이썬에서는 주로 리스트를 사용하여 스택을 구현합니다.

- 리스트 사용: 파이썬 리스트의 append()와 pop() 메서드를 사용하여 스택을 구현할 수 있습니다.

 

728x90