티스토리 뷰
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.


오늘은 7,8,9강을 수강했다.
오전에 듣자니 집중할 수 있는 시간에 하는 게 좀 아쉬워서 저녁시간으로 변경했다. 퇴근하고 피곤하긴 하지만 그래도 꾸준히 해보자!ㅎㅎ
자료구조란?
데이터의 저장 및 관리 방법론으로 단순한 저장공간만을 의미하는 것이 아님
Stack이란?
LIFO (Last In First Out): 마지막에 들어온 값을 먼저 제거

풀이는 쉬웠는데 인풋을 받는 형태를 어떻게 해야하나 했다. 강사님 보니까 문제에서 '예제 입력1' 이렇게 적힌 거를 그대로 넣어서 푸시더라. 난 그냥 내 임의로 넣었는데.. 그렇게 하면 안되는구나 깨달았다 ㅎㅎ;
예를 들어 인풋의 처음은 들어올 숫자의 갯수이다. 이랬는데 나는 내 임의대로 숫자의 갯수인 첫 번째 값은 제외하고 두 번째 값부터 입력한거다 ㅎㅎ... 그러면 안되는구나. 알았으면 됐지 뭐 ㅎㅎ
풀이
K = int(input())
stack = []
for i in range(K):
n = int(input())
if n == 0:
stack.pop()
else:
stack.append(n)
print(f"Answer: {sum(stack)}")
(마지막에 Answer print도 그냥 내 마음대로 찍은 것...)
풀이
def is_match(i: str) -> bool:
"""짝이 맞는지 아닌지 확인"""
if i == "]" and stack and stack[-1] == "[":
return True
if i == ")" and stack and stack[-1] == "(":
return True
return False
while True:
sentence = input()
if sentence == ".":
break
stack = []
for i in sentence:
if i in ["[","]","(",")"]:
if is_match(i):
stack.pop()
else:
stack.append(i)
if len(stack):
print("no")
else:
print("yes")
강사님 풀이
while True:
s = input()
if s == ".":
break
stack = []
balanced = True
for i in range(len(s)):
if s[i] == "(" or s[i] == "[":
stack.append(s[i])
if s[i] == ")":
# stack이 비어있으면 안됨
if len(stack) == 0:
balanced = False
break
last = stack.pop()
if last != "(":
balanced = False
break
if s[i] == "]":
# stack이 비어있으면 안됨
if len(stack) == 0:
balanced = False
break
last = stack.pop()
if last != "]":
balanced = False
break
# 마지막에는 stack이 비어있어야 함
if len(stack) != 0:
balanced = False
if balanced:
print("yes")
else:
print("no")
이거 스택 구조 모르고 그냥 문제 바로 풀었으면 당황했을 것 같다. 좋아 오늘도 하나 배웠어~~


#패스트캠퍼스 #환급챌린지 #패스트캠퍼스후기 #습관형성 #직장인자기계발 #오공완
'Python > 코딩테스트' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 6일차 : 네카라쿠배 취업 끝장내는 파이썬 코딩테스트 마스터 (0) | 2025.04.06 |
---|---|
패스트캠퍼스 환급챌린지 5일차 : 네카라쿠배 취업 끝장내는 파이썬 코딩테스트 마스터 (0) | 2025.04.05 |
패스트캠퍼스 환급챌린지 4일차 : 네카라쿠배 취업 끝장내는 파이썬 코딩테스트 마스터 (0) | 2025.04.04 |
패스트캠퍼스 환급챌린지 2일차 : 네카라쿠배 취업 끝장내는 파이썬 코딩테스트 마스터 강의 후기 (0) | 2025.04.02 |
패스트캠퍼스 환급챌린지 1일차 : 네카라쿠배취업끝장내는파이썬코딩테스트마스터 강의 후기 (0) | 2025.04.01 |