주니어 데이터 엔지니어 우솨's 개발일지

데이터 엔지니어링 5일차 TIL 본문

데브코스

데이터 엔지니어링 5일차 TIL

우솨 2024. 3. 29. 17:19

학습내용

힙(heap)의 문제풀이
성질 : 최대/최소 원소를 빠르게 찾을 수 있다.
연산
heapify - 힙구성
insert - 삽입
remove - 삭제

동적계획(Dynamic Programming법 문제풀이
ex) 피보나치,Knapsack Problem
문제의 성질에 따라, 동적계획법으로 풀어냄으로써 탐색해야 하는 범위를 효과적으로 줄일 수 있다.

깊이/너비 우선탐색(DFS/BFS)

깊이 우선 탐색(DFS) : 한 정점에서 인접한 모든(아직 방문하지 않은) 정점을 방문하되, 각 인접 정점을 기준으로 깊이 우선 탐색을 끝낸 후 다음 정점으로 진행

너비우선탐색(BFS) : 한 정점에서 인접한 모든(아직 방문하지 않은)정점을 방문하고, 방문한 각 인접 정점을 기준으로(방문한 순서에 따라) 또 다시 너비 우선탐색을 행함

 

실습문제 풀이

1.

 

2.

3.



특강) 코딩테스트

코딩테스트는 왜 하는가 ?
최소한의 문제 해결 능력을 확징(검증)하기 위하여
-문제의 분석과 해결방법착안
-이것을 코드로 구현

코딩인터뷰
직무에 필요한 배경지식을 충분히 갖추고 있는지 점검
생각한 바를 논리적으로 올바르게 전달할 수 있는지 점검
(whiteboard test, live coding 방법 등 활용)

코딩 문제의 종류 :
Implementation : 제시된 흐름에 따라 실행하는 코드를 만들도록 요구 - 로직을 알려주고 그대로 구현하는 것.

Algorithm comprehension : 문제의 효과적/효율적 해법을 찾아내도록 요구

Competency test : 특정한 자료구조와 알고리즘을 착안하여 제한시간 내에 문제의 답을 도출하도록 요구 - 시간복잡도 효율성

기타 : 특정한 언어 구문을 활용할 수 있는지를 테스트
ex)SQL

빠지기 쉬운 함점
- 코드를 짧게 쓴다고 빠르게 실행되는 것은 아님
- 짧은 코드 != 좋은 코드

 

느낀 점

오늘도 어제처럼 특강이 있었다.

코딩테스트에 관하여 강의 해주셨는데 앞으로 취업할 때의 코딩테스트를 생각하면 정말 유용했다고 생각한다.

다른 사람들의 문제풀이를 볼 때 한줄로 써 놓은 답이 멋있다는 생각이 들었었는데 결코 좋은 정답이 아니란 것을 알게 되었고 그런 겉 멋(?)을 추구하기 보다는 클린코드를 추구해야 한다는 점을 깨달았다.

오늘은 평소 코딩공부 할 때에도 어려워했던 DFS,BFS에 관한 강의가 있었는데 이번 강의를 통해 조금 길이 보인다는 생각이 조금은 들었지만 여전히 어렵다는 마음이 더 크다.