220110 - TIL

Suntory·2022년 1월 10일
0

TIL

목록 보기
6/57

오늘 할 일

번호내용성공 여부
1알고리즘 1일 1문제 실천하기O
2오늘 미션 하면서 배운 점 잘 정리해보기(고민 많이 기록하기)O
3생활 계획 플래너에 기입해보기X

연결리스트 구현 해보기

구현에 앞선 설계 과정

  • 우선 영상 데이터를 객체로 생성하고, 그 객체들을 담을 List 구조를 생성한다.
  • 그 List 구조를 기반으로, 명령어에 따라 연결 리스트 구조에 추가하거나 삭제한다.
  • 필요한 기능을 가진 연결 리스트를 직접 구현한다.
  • 명령어를 입력받을 때 알맞는 연결 리스트 함수를 호출하여야 한다.

헷갈릴 때는 그림을 그려보자(다음엔 좀 깔쌈하게..)

초반에는 잘 구현하다가 연결 리스트를 구현하자 꼬이기 시작했다.
결국 저녁 먹기 직전에 집중이 깨져서 저녁을 먹고 쉬었다가 다시 시작했다.
Boostcourse의 자료구조 강의를 참고하면서 했더니 다시 아이디어를 얻을 수 있었다. 이 강의 참 좋은 것 같다!
강의에서도 보여주는 것처럼, 연결리스트는 그림을 그려야 훨씬 쉬운 것 같다.

강의에 나온 내용들

자료구조를 구현할 때 생각해야 할 경계 조건들

  • 자료구조가 빈 경우
  • 요소가 한 개만 있는 경우
  • 맨 앞의 요소를 추가하거나 삭제하는 경우
  • 맨 끝의 요소를 추가하거나 삭제하는 경우
  • 자료구조 중간에서 작업하는 경우

미션하면서 느낀 고민/생각 및 참고한 자료들

  1. 클래스 구조에 대한 고민들
    : 처음에는 나름 필요한 객체를 생성해서 잘 짜고 있다고 생각했다.
    그러다 여러 클래스 간 소통이 필요한 부분에 갔더니 생각없이 private로 선언했던 것이 발목을 잡았다. 역시 설계 단계부터 대충 어떤 흐름으로 프로그램이 실행될 지 먼저 고민하는 것이 중요한 것 같다.
    이번엔 어느 class를 중심으로 실행할 지 main class에 대한 흐름이 부족했던 것 같다.

  2. 반복의 중요성
    : 사실 연결리스트 구현은 이번이 처음이 아니다. 꽤나 많이 했던 과제인데 할 때마다 헷갈려서 자료를 참고하곤 한다. 그러다 보니 쉽게 내 것이 되질 않는다. 이번 과제가 끝나더라도 시간이 나면 연결리스트 구현은 계속 연습해서 기계적으로 가능할 때까지 연습이 필요할 것 같다. 기술 면접에서도 물어본 경험이 있는 만큼 더 연습해야겠다고 느꼈다.

profile
천천히, 하지만 꾸준히 그리고 열심히

0개의 댓글