while (!dq.empty() && dq.back().second >= num) 형태의 코드의 이해.

 

 

이런 형태의 코드에서

while(!dq.empty()&&dq.back().second>=num)의 코드의 !dq.empty() 부분이 헷갈려서 gpt에 설명을 요구하였다. 

'empty()'함수는 deque가 비어있는 경우에만 true를 반환하므로, '!dq.empty()'는 deque가 비어있지 않을 때에만

true가 되며, 따라서 while루프의 조건이 참이 된다. 

 

이 부분을 보았을때, empty()가 트루가 되는건, 비어 있을때, 

그럼 !empty()가 참이 되는건, 그 반대로 비어있지 않을때, 

그러니까 말을 하듯이 설명해보면, !empty()&& 라는 부분은, empty() 상태가 아니면서(!) 그리고(&&) 형태이니까

그냥 말 하듯이 "deque가 비어있지 않으면서 ~ ~" 형태로 생각하면 되겠다. 

비어있지 않으면서 라는 표현이 딱 이해하기 좋은 수준인것 같다. 

헷갈리지 않도록 이러한 표현에  익숙해지도록 하자. 

 

  Comments,     Trackbacks