본문 바로가기
개발자 일기/일일회고 (TIL)

부트캠프 61일차 (자료구조 / 알고리즘 기초)

by MS_developer 2022. 11. 17.

오늘의 생각

 

스택과 큐를 배우며, 자료구조 세계에 발을 들였다.

 

학부 때 매우 흥미롭게 진행하는 한편, 흥미로웠던만큼 고통 받은 영역이 아니었나 싶다.

 

스택과 큐의 기본적인 개념 정리와 특징에 대해 배우고 이해하는 부분은 복습과 같은 느낌이라 무난했다. 하지만 연습 문제에 들어서면서 스택과 큐 자료구조를 활용했을 때 어려웠던 점을 다시 상기시킬 수 있었다.

 

스택과 큐의 자료활용 구조(LIFO / FIFO)를 기억하고, 문제에서 해당 자료구조의 특성을 어떤 식으로 활용하길 원하는지 생각하고 접근하는 것이 좋은 접근이었던 것 같다. 

 

한 가지 개인적으로 아쉬웠던 점은, 문제에서 요구하는 사항을 완벽히 이해하지 못했던 점이었다. 

 

 

큐 자료구조를 활용한 문제의 마지막 문장이다. 문제가 요구한 부분은 큐의 자료구조를 활용해 "나갈 수 있는 인원들을 큐 별로 비교해" 최대 몇 명이 한꺼번에 나갈 수 있는지 확인하는 문장이었는데, 너무 쉽게 생각해 "여러가지 가능성 중 하나"가 아닌 "맨 처음 요소를 기준"으로 나갈 수 있는 최대 인원 수를 고려했었다.

 

문제를 잘 이해하고 수행하는 것도 중요한 능력인데 문제를 간과하고 원하는 바를 이해하지 못한 채 코드를 작성하려한 점이 아쉬웠다.

 

 

"내가 생각하는 것이 옳다"는 자세를 고치고 더 많은 가능성을 고려하고 문제가 요구하는 것이 무엇인지 정확히 파악하는 습관을 길러야겠다고 생각했다.

 


오늘의 키워드

자료구조, 데이터, 스택Stack, LIFO(Last In First Out) / FILO(First In Last Out), 큐Queue, FIFO(First In First Out) / LILO(Last In Last Out)

 


오늘의 학습내용

  • 자료구조와 데이터의 정의
  • 자료구조의 종류와 활용하는 이유
  • 스택Stack의 개념 및 특징, 실사용 예시
  • 큐Queue의 개념 및 특징, 실사용 예시

 


어려웠던 keyword / 활용한 질문

 

Q. 배열로 Stack이나 Queue를 사용할 때 주의해야 할 사항은 어떤 것들이 있나요?

 

A. 스택과 큐의 차이점을 통해 각 자료구조의 특징과 사용법을 이해하고 있어야 합니다. 스택은 선입선출(FIFO), 큐는 후입선출(LIFO)의 구조적 특성을 가지고 있으며 제한된 용량이 주어지므로 스택 오버플로우(Stack Overflow)같은 에러가 발생할 수 있습니다.

 

Q. JavaScript의 배열과 Stack, Queue는 어떤 차이가 있나요?

 

A. 자바스크립트(JS)의 배열은 순서에 상관없이 데이터를 추가하고 삭제할 수 있습니다. Stack과 Queue는 자료구조적 특성을 지키기 위해 선입선출, 후입선출 방식을 따라야 하지만, JS의 배열은 이 부분에서 자유로워 push, pop, shift, unshift 등 다양한 메서드를 사용할 수 있습니다.

 

 

 

댓글