오늘 목표 TIL 작성 필수 문제 풀기 학습한 것 백트래킹 관련된 문제들이 시작부터 나왔는데, N과 M 문제 때 제대로 준비하지 못해서 그런지 많이 어려웠다. 탐색 유형에 그래프 탐색 문제가 많다보니 BFS, DFS를 소홀히 한 행동이 약점으로 다가왔다. 그래서 내일부터는 부족했던 부분부터 다시 학습할 필요성이 보인다. 아래 블로그는 BFS나 백트래킹을 찾다보니 기본적인 내용부터 차례대로 설명해줘서 이해하기 쉬웠던 블로그다. 문과생이 적어보는 백트래킹 (재귀와 DFS 를 곁들인) 들어가기에 앞서서, 해당 글은 기본적인 문법 (for, while, print, 입력받기, 배열)에 대해서 알고 있음을 전제로 합니다.만약 기본적인 문법을 모르는 상태라면 반복문과 출력, 배열, 입력받기에 대 velog.io 팀..
개발자취업
오늘 목표 TIL 작성 코딩테스트 문제 복기 반성 오늘 코딩 테스트 문제를 풀면서 얻어가야할 것들과 내일부터 시작되는 4주차 과정에서 각 문제를 어떤 방식으로 접근해야되는지에 대해서 알려주셔서 감사했다. 오늘 문제를 풀면서 지금까지 내가 공부했던 알고리즘 파트에서 어느 부분이 앞으로 더 학습해 나가야 하고 어떤 부분은 그래도 잘했는지 나눠서 중간점검 느낌으로 생각해봤다. 잘한 부분 파이썬의 기본 자료구조에 대한 이해도가 많이 늘었다. 알고리즘에 대해 처음 공부하며 어떤 알고리즘들이 있는지 이해했다. 반성할 부분 처음 접한 만큼 아직 각 알고리즘에 대한 이해도가 부족하다. 자바에 대한 이해도가 떨어지는 것 같으니 지난 과정을 복기할 필요가 있다. 스택, 재귀, 그래프 탐색에 약한 모습을 보인다. 코딩 테스..
오늘 목표 TIL 작성 필수 문제 다 풀기(3번은 못풀어서 세모) 학습한 것 오늘은 그래프의 기초적인 내용과 DFS, BFS와 관련해서 학습했다. 내용 정리는 양이 좀 있어 별도로 작성했다. [알고리즘] 그래프와 DFS, BFS 1. 그래프란? 그래프는 '노드 (Node) 와 각각의 노드를 연결하는 간선(Edge)'으로 구성된 자료구조이다. 쉽게 설명하면 각각의 객체들과 그것을 잇는 선들의 집합이라고 생각하면 된다. 실생활에서 digitalagora.tistory.com 아쉬웠던 점 문제의 난이도가 높다보니 자꾸 집중이 되지 않아 제대로 문제를 풀지 못했다. 가능하면 그래프 관련된 문제들은 한 번 더 확인하면서 문제 유형이나 풀이 방법에 대해 더 자세히 알아둬야겠다. 좋았던 점 어렵지만 포기하지 않은 나..
오늘 목표 TIL 작성 필수 과제 풀기 학습한 것 오늘은 그래프의 기초적인 부분을 학습하면서 공부했는데 아직 이해가 잘 되지 않은 부분이 많아, 월요일에 그래프 탐색을 하면서 그래프의 내용을 좀 더 정리하면서 작성해야겠다. 좋았던 점 heapq를 사용하면서 그냥 쓰기만했었지, 자료구조의 시간복잡도나 공간복잡도에 대해서 제대로 생각해보지 않은 것 같다. 근데 오늘 멘토링을 하면서 멘토분과 팀원들과 함께 heapq 내의 heapify나 heappush 같은 함수들이 왜 O(N), O(logN)인지, 정렬 알고리즘들은 왜 그런 시간 복잡도를 가지고 있는지 내부적인 로직에 대해서도 고려해볼 수 있었다. 아쉬웠던 점 오늘 문제는 그래프와 관련된 것이 아니라 지금까지 풀었던 문제들을 종합적으로 풀어보는 문제였다. ..
오늘 목표 TIL 작성 필수 과제 모두 풀기 학습한 것 이진 탐색이란? 정렬이 이미 되어 있는 리스트에서 탐색의 범위를 절반씩 줄여나가며 데이터를 탐색하는 방법을 의미한다. 다음과 같은 특징을 가진다. 변수 3개를 사용해 탐색한다.(start, mid, end or left, mid, right) start: 시작 범위 mid : 중간 위치에 있는 데이터 end : 끝 범위 탐색의 범위를 절반 단위로 줄이기 때문에 시간 복잡도는 O(log₂N) 이다. 다음과 같은 예시를 통해서 이해해보자. 코드 및 실행 예시 # 시작 데이터 arr = [1,2,3,4,5,6,7,9,10] # 찾으려는 값 target = 8 # 1회 탐색(start = 1, mid = 5, end = 10) # mid의 값보다 찾으려는 ..
[학습 내용] 오늘은 힙에 대해서 학습했다. 1. 힙 힙은 완전 이진 트리의 일종으로 부모 자식 노드 사이에 특정 조건을 만족하는 자료구조를 말한다. 완전 이진 트리란 부모 노드 밑에 자식 노드가 최대 2개까지 있을 수 있고, 마지막 리프 노드를 제외한 모든 노드가 완전히 채워져 있는 구조를 말한다. 힙은 기준점에 따라서 최소 힙과 최대 힙으로 나눌 수 있는데, 다음과 같은 특징이 있다. 최대 힙은 모든 부모 노드가 그 자식 노드보다 크거나 같은 값을 가지는 특성을 가지고 있어 루트 노드는 전체 힙에서 가장 큰 값을 가지고 있다. 반대로 최소 힙은 부모 노드가 자식 노드보다 작거나 같은 특성을 가지기 때문에 루트 노드가 전체 힙에서 가장 작은 값을 가진다. 파이썬에서는 heapq 라이브러리를 활용해서 생..
[학습 내용]오늘은 알고리즘 및 자료구조의 입문 단계라고 할 수 있는 스택과 큐에 대해서 학습했다. 그중에서도 스택을 알아보자.1. 스택(Stack)스택은 '쌓는다' 라는 이름의 어원처럼, 먼저 입력한 데이터를 제일 나중에 꺼낼 수 있는 LIFO(Last In First Out)의 구조를 가진 자료구조이다. 일상 생활에서도 많이 볼 수 있는 형태인데, 곽티슈나 좁고 긴 바구니에 물건을 넣는다면 이런 구조를 지닐 것이다. 실제 프로그램 내부에서도 이런 구조를 지닌 대표적인 예는 우리가 함수를 형성하고 저장할 때, 함수가 메모리의 스택 영역에 실행 순서에 따라 차근차근 저장되고, 가장 나중에 호출된 함수부터 차례차례 해제된다. 이런 스택을 프로그램에서 차용하는 가장 큰 이유는 처음 실행했던 함수로 돌아가기 ..
[팀스터디에서 얻은 인사이트] 모든 문제를 푸는게 좋은게 아니라 정답률, 문제를 푼 사람 수 등 대중적으로 사람들이 많이 푼 알고리즘 문제에 대해서 먼저 고민하고 나서 심화 문제를 고려하는 것이 중요하다고 하셨다. 확실히 같은 알고리즘, 자료구조의 문제를 많이 풀 때도 위와 같은 우선순위를 두고 유형과 어느 정도의 정형화된 코드를 이해하고 나서 문제에 접근한다면 실전에 더 잘 풀 수 있다 싶다. 항해99 취업 리부트 코스를 수강하고 작성한 콘텐츠입니다. IT 커리어 성장 코스 항해99, 개발자 취업부터 현직자 코스까지 항해99는 실무에 집중합니다. 최단기간에 개발자로 취업하고, 현직자 코스로 폭발 성장을 이어가세요. 실전 프로젝트, 포트폴리오 멘토링, 모의 면접까지. hanghae99.spartacodi..