인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

jjang26945793's profile image
jjang26945793

asked

Introduction to Python Algorithm Problem Solving (Coding Test Preparation)

Chapter 5 쇠막대기 문제 질문입니다.

Written on

·

183

0

강의와 관련있는 질문을 남겨주세요.
• 강의와 관련이 없는 질문은 지식공유자가 답변하지 않을 수 있습니다. (사적 상담, 컨설팅, 과제 풀이 등)
• 질문을 남기기 전, 비슷한 내용을 질문한 수강생이 있는지 먼저 검색을 해주세요. (중복 질문을 자제해주세요.)
서비스 운영 관련 질문은 인프런 우측 하단 ‘문의하기’를 이용해주세요. (영상 재생 문제, 사이트 버그, 강의 환불 등)

질문 전달에도 요령이 필요합니다.
• 지식공유자가 질문을 좀 더 쉽게 확인할 수 있게 도와주세요.
• 강의실 페이지(/lecture) 에서 '질문하기'를 이용해주시면 질문과 연관된 수업 영상 제목이 함께 등록됩니다.
• 강의 대시보드에서 질문을 남길 경우, 관련 섹션 및 수업 제목을 기재해주세요. 
• 수업 특정 구간에 대한 질문은 꼭 영상 타임코드를 남겨주세요!

구체적인 질문일수록 명확한 답을 받을 수 있어요.
• 질문 제목은 핵심 키워드를 포함해 간결하게 적어주세요.
• 질문 내용은 자세하게 적어주시되, 지식공유자가 답변할 수 있도록 구체적으로 남겨주세요.
• 정확한 질문 내용과 함께 코드를 적어주시거나, 캡쳐 이미지를 첨부하면 더욱 좋습니다.

기본적인 예의를 지켜주세요.
• 정중한 의견 및 문의 제시, 감사 인사 등의 커뮤니케이션은 더 나은 강의를 위한 기틀이 됩니다. 
• 질문이 있을 때에는 강의를 만든 지식공유자에 대한 기본적인 예의를 꼭 지켜주세요. 
반말, 욕설, 과격한 표현 등 지식공유자를 불쾌하게 할 수 있는 내용은 스팸 처리 등 제재를 가할 수 있습니다. 

쇠막대기 문제하다가 질문이 생겨서 질문 드립니다. 

제가 처음 접근한 방식인데요 이렇게 작성을 하게 되면 첫번째 else구문 안쪽에 if 절에서 IndexError: list index out of range라는 에러가 발생하더군요. 앞전 문제와 같이 temp리스트 안에 마지막 원소를 확인하기 위해서 [-1]을 사용했는데 여기서 왜 문제가 발생하는지 잘 모르겠습니다. 강사님께서는 이번 강의에서 num[i-1]을 사용해서 마지막 원소를 검색하시더라구요. 앞 전강의와 이번 강의에서 stack 리스트 안에 마지막 원소를 검색하는 방법이 다른 이유와 여기서는 왜 적용이 안되는지 설명해 주실수 있으신가요? 항상 강의 잘 듣고 있습니다. 감사합니다.

import sys
sys.stdin = open('input.txt')

num = input()
cnt = 0
temp = []

for i in range(len(num)):
if num[i] == '(':
temp.append(num[i])
else:
temp.pop()
if temp[-1] == '(':
cnt += len(temp)
else:
cnt += 1

print(cnt)
python코테 준비 같이 해요!

Answer 1

0

codingcamp님의 프로필 이미지
codingcamp
Instructor

이 문제는 스택의 상단을 탐색하지 않는 문제입니다. 제가 num[i-1]을 탐색하는 것은 스택이 아니라 입력받은 문자열을 탐색하는 것입니다. 영상을 다시 보시면 다 설명하고 있습니다.

위 코드에서 if temp[-1]=='(' 이 아니라  if num[i-1]=='(' 로 바꾸시면 100점 나올겁니다.

jjang26945793's profile image
jjang26945793

asked

Ask a question