inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

코딩테스트 [ ALL IN ONE ]

[코테 적용] 👉 LIFO 2번 째 문제

스택 안에 왜 -1과 1이 들어가는지 궁금합니다.

해결된 질문

337

김민규

작성한 질문수 1

1

안녕하세요 코딩 테스트를 공부하고 있는데 이해가 안 되는 부분이 있어 글을 올립니다.

5행에 있는[-1]이 cur_day를 가리키고[1]이 cur_temp를 가리키는 걸로 이해를 하고 있습니다.

궁금한 점: 제가 이해한 부분이 맞는다면 왜 스택 부분에 -1과 1이 들어가는지 궁금합니다.

python 코딩-테스트 알고리즘

답변 2

0

개발남노씨

안녕하세요 민규님.

 

stack[-1]은 스택의 top 부분을 지칭하고

stack[-1][1]은 스택의 top부분에 있는 튜플 중에서 1번째 인덱스에 있는 값을 가리키는 것입니다.

 

즉 -1은 top을 지칭하기 위해서

1은 튜플의 1번째 인덱스를 지칭하기 위해서 사용한 것입니다.

 

질문에 대한 답이 되었을까요!?

항상 화이팅입니다 ㅎㅎ

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

님의 질문에 대한 답변은 이렇습니다. 코드 내에서 스택에 -1과 1이 들어가는 것이 아니라, stack[-1][1]과 같은 표현은 Python의 리스트 슬라이싱 및 인덱싱 기능을 사용한 것입니다. 여기서 stack[-1]은 스택의 가장 최근에 추가된 요소(맨 위의 요소)를 가리키고, [1]은 해당 요소의 두 번째 값(예: 온도)을 가리킵니다. 즉, stack[-1][1]은 스택의 맨 위에 있는 요소의 온도 값을 참조하는 것을 의미합니다.

스택에 들어가는 값은 (cur_day, cur_temp) 즉, 현재 날짜와 현재 온도의 튜플 형태로 들어가고, 스택에서 이 값을 조회할 때는 위와 같은 인덱싱 방식을 사용하는 것입니다.

이 코드에서 스택은 이전에 나왔던 날의 인덱스와 온도를 기억하기 위해 사용됩니다. while 루프 내에서 스택이 비어있지 않고, 현재 온도(cur_temp)가 스택의 맨 위에 있는 요소의 온도(stack[-1][1])보다 높을 경우, 스택에서 그 날짜를 꺼내 (pop 메소드 사용) 그 날짜와 현재 날짜의 차이를 계산하여 해당 날짜까지 온도가 상승하는 데 걸리는 일수를 구해 ans 리스트에 저장하는 로직입니다.

따라서, -11은 스택에 들어가는 값이 아니라, Python 리스트와 튜플을 인덱싱하여 특정 요소를 참조하기 위한 방법입니다.

노션 공유 링크

0

87

2

수업 중간에 내주신 문제는 해답을 알 수 없는걸까요?

0

78

2

최신 강의와 비교

0

85

2

Min Cost Climbing stairs 질문

0

77

2

노션 공유 부탁드립니다!

1

88

2

for 문에 sort 함수 를 사용하면

1

90

2

노션 공유 부탁드립니다.

0

105

2

디스코드가 올바르지 않다고 뜹니다..!

0

107

1

그래프

0

98

2

노션 공유

1

123

2

시간복잡도 질문

2

125

3

11강 질문

1

78

2

노션 공유 부탁드립니다

0

84

2

linkedList - BrowserHistory 코드 질문

0

76

1

list1.append(list2)와 list1.append(list2[:])의 차이가 무엇인가요?

1

168

1

라이브러리 사용

1

137

2

문제 교재는 따로 없는 거 맞나요?

1

202

2

LCA 관련해서 질문이 있습니다.

1

118

2

[Unique Paths] 완전탐색 / DP (후반부)

0

108

1

dp 계단오르기최소비용질문입니다.

0

109

1

Dynamic Array 의 size 정보가 저장되는 곳

2

161

2

노션공유가 안된듯 합니다

1

165

2

[코테 적용] 👉 [3번 문제] 완전탐색 (DFS, BFS) (전반부)

1

122

1

강의자료 만들 때 사용하신 프로그램이 뭘까요?

1

204

1