• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

Daily Temperature

20.03.09 15:50 작성 조회수 123

1

dailyTemperatures 코드 부분에서 while문안에 temper[stack.peek()]<temper[i] 라고 하셨는데 

왜 stack.peek()<temper[i] 가 아닌 temper[stack.peek()]를 썻는지가 궁금합니다. 만약 stack의 top에 데이터가 93이면 temper[93]되서 스택의 데이터사이즈를 벗어나는 것이 아닌가요?

답변 1

답변을 작성해보세요.

1

안녕하세요??

질문 주신 

1. "왜 stack.peek()<temper[i] 가 아닌 temper[stack.peek()]를 썻는지가 궁금합니다. "

stack.push(i); 스택에 이렇게 저장됩니다.

여기서 인덱스 위치를 저장하는겁니다.

강의를 보시면 73,74를 비교하기 위해서 스택에 위치(0,1)만 저장하는거죠

2. "만약 stack의 top에 데이터가 93이면 temper[93]되서 스택의 데이터사이즈를 벗어나는 것이 아닌가요?"

temper[93] 이렇게 안됩니다. 93의 배열에 위치를 스택에 저장하는겁니다.

강의를 보시면 이해가 가실거여여, 이 문제에 핵심은 그날의 온도를 저장했다가 며칠있다가 온도가 높아지는가

날짜비교를 하는거죠..

하여튼 다시 보시고 이해가 안가시면 질문올려주세요.