분류 전체보기 70

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 3

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?그리디(Greedy) 알고리즘개요그리디 알고리즘은 탐욕 알고리즘이라고도 하며, 최적해를 구하는 데에 사용되는 근사적인 방법입니다. 여러 경우 중 하나를 결정해야 할 때마다 그 순간에 최적이라고 생각되는 것을 선택해 나가는 방식으로 진행하여 최종적인 해답에 도달합니다. 그리디 알고리즘은 그 순간마다 지역적으로 최적의 선택을 하지만, 이 선택이 항상 전역적으로 최적임을 보장하지는 않습니다.특징지역 최적성: 각 단계에서 지역적으로 최적의 선택을 합니다.전역 최적성 보장 X: 지역 최적성이 항상 전역 최적성을 보장하지 않습니다.단순성: 구현이 간단하고 이해하기 쉽습니다.적용 가능한 문제그리디 알고리즘은 다음과 같은 조건을 만족하는 문제에 효과적으로 적용할 수 ..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 2

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?백트래킹백트래킹이란 무엇인가요?백트래킹은 문제를 해결하기 위해 후보 해를 하나씩 만들어 나가다가, 해당 후보 해가 문제의 조건을 만족하지 않으면 즉시 포기하고 다음 후보 해를 시도하는 알고리즘입니다. 즉, 가능한 모든 해를 탐색하되 불필요한 탐색은 줄여서 효율적으로 문제를 해결하는 방법이에요.백트래킹의 특징재귀적 탐색: 백트래킹은 재귀적으로 모든 가능한 해를 탐색해요. 각 단계에서 후보 해를 확장하거나 포기하는 결정을 내려요.가지치기: 가능성이 없는 경로를 빨리 포기(가지치기)하여 탐색 공간을 줄입니다. 이를 통해 시간 복잡도를 줄이고 효율성을 높여요.상태 공간 트리: 해결 과정이 트리 형태로 표현되며, 트리의 각 노드는 해결의 각 단계를 나타냅니다. ..

[항해99 취업 리부트 코스 학습일지] 4주차 알고리즘 학습 Day 1

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?시뮬레이션 문제란?시뮬레이션 문제는 구현 문제의 한 유형으로, 특정 상황을 코드로 시뮬레이션하여 해결하는 문제입니다. 이러한 문제는 난이도가 높을 수 있지만, 복잡한 알고리즘보다 명확한 구현 능력이 요구되는 경우가 많습니다.왜 시뮬레이션 문제가 중요한가?코딩 테스트에서 빈번히 출제: 많은 기업의 코딩 테스트에서 자주 출제됩니다.구현 능력 평가: 단순한 알고리즘 능력보다는 문제를 이해하고 코드를 통해 정확하게 구현하는 능력을 평가하는 데 적합합니다.필요한 도구자료구조: 효율적인 문제 해결을 위한 기본적인 자료구조.시간복잡도 계산: 알고리즘의 효율성을 평가하고 시간복잡도를 계산하는 능력.그래프 기초: BFS, DFS와 같은 그래프 탐색 기법.브루트포스(완전..

[항해99 취업 리부트 코스 학습일지] 3주차 알고리즘 학습 Day 6

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?따로 진행된 강의는 없었고, 문제풀이를 진행함. BFS 최단 경로를 구하는 문제최단 경로 문제: 무가중치 그래프에서 노드 A에서 노드 B로 가는 최단 경로를 찾는 문제에서, BFS는 A에서 출발하여 모든 이웃 노드를 탐색하면서 B에 도달할 수 있는 최단 경로를 발견합니다.우선순위 큐 문제각 요소가 우선순위를 가지는 자료구조로, 우선순위가 높은 요소가 먼저 처리됩니다. 주로 가중치가 있는 그래프에서 최단 경로를 찾는 알고리즘, 우선순위 큐를 사용하면 각 노드를 탐색할 때 현재까지의 최단 거리를 기준으로 우선순위를 정하여 효율적으로 최단 경로를 구할 수 있다. 2문제를 풀었다. 아직 알고리즘 문제 접근과 구현이 어렵다.. Q. 이번 주 진행된 팀 스터디에서..

[백준] 1697번 : 숨바꼭질 - Java

문제https://www.acmicpc.net/problem/1697수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다.수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 현재 위치에서 -1, +1, 또는 *2 위치로 이동할 수 있고, 목표는 최소 시간을 계산하는 것이므로 BFS를 사용접근 방법그래프 탐색: 이 문제는 그래프 탐색 문..

[항해99 취업 리부트 코스 학습일지] 3주차 알고리즘 학습 Day 5

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?깊이 우선 탐색(DFS)이란 무엇인가요?깊이 우선 탐색(DFS, Depth-First Search)은 그래프 탐색 알고리즘 중 하나로, 한 정점에서 시작하여 가능한 깊이까지 탐색한 후, 다시 돌아와 다른 경로를 탐색하는 방식입니다. 트리나 그래프의 모든 정점을 방문하는 데 사용됩니다.깊이 우선 탐색의 특징스택 기반: DFS는 스택 자료구조를 사용합니다. 재귀 호출을 이용하면 자연스럽게 함수 호출 스택을 사용하게 됩니다.경로 탐색: 경로를 찾는 데 유용합니다. 예를 들어, 미로를 찾는 문제에 효과적입니다.모든 정점 방문: 그래프의 모든 정점을 한 번씩 방문합니다.시간 복잡도: DFS의 시간 복잡도는 O(V + E)이며, 여기서 V는 정점의 수, E는 간선..

Docker

Docker란 무엇인가?Docker는 애플리케이션을 컨테이너라는 표준화된 유닛으로 패키징하고 배포할 수 있도록 도와주는 오픈 소스 플랫폼입니다. 컨테이너는 애플리케이션 코드, 라이브러리, 설정 파일 등을 포함하여 다양한 환경에서 일관된 실행을 보장합니다.Docker의 주요 구성 요소컨테이너 (Container)Docker 컨테이너는 Docker 이미지의 실행 인스턴스입니다. 이미지를 실행하면, 이미지의 스냅샷인 컨테이너가 메모리에서 실행됩니다. 각 컨테이너는 서로 격리되어 있으며, 자체 파일 시스템, 자체 네트워크 인터페이스를 가지며, 자체 프로세스 공간 내에서 실행됩니다.이미지 (Image)Docker 이미지는 애플리케이션과 그 종속성을 포함하는 경량의, 독립적인, 실행 가능한 소프트웨어 패키지입니다...

[항해99 취업 리부트 코스 학습일지] 3주차 알고리즘 학습 Day 4

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?그래프란 ?그래프는 정점(Node)과 간선(Edge)으로 구성된 자료구조입니다. 정점은 객체를 나타내고, 간선은 정점 간의 관계를 나타냅니다. 예를 들어, 친구 관계를 나타내는 소셜 네트워크에서 사람들을 정점으로, 친구 관계를 간선으로 표현할 수 있습니다. 그래프는 다양한 실제 문제를 모델링하는 데 유용한 자료구조입니다. 예를 들어, 도시 간의 도로 네트워크, 컴퓨터 네트워크, 소셜 네트워크 등이 있습니다. 정점 (Node)정점은 그래프의 기본 단위로, 개체나 객체를 나타냅니다. 예를 들어, 도시, 사람, 웹 페이지 등을 나타낼 수 있습니다.간선 (Edge)간선은 정점 간의 연결을 나타내며, 정점들 간의 관계를 정의합니다. 예를 들어, 도로, 친구 관계..

[항해99 취업 리부트 코스 학습일지] 3주차 알고리즘 학습 Day 3

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?오늘은 정렬과 이분 탐색에 대해 학습했다. 정렬은 데이터를 특정 순서에 따라 배열하는 과정으로, 여러 가지 방법이 있다. 이분 탐색은 정렬된 배열에서 특정 값을 효율적으로 찾는 알고리즘입니다. 아래는 각각의 개념과 알고리즘에 대한 간단한 설명입니다.정렬 (Sorting)정렬은 데이터 요소들을 오름차순이나 내림차순으로 재배열하는 작업입니다. 여러 가지 정렬 알고리즘이 있으며, 그 중 몇 가지를 정리해 보았습니다.버블 정렬 (Bubble Sort): 인접한 두 요소를 비교하여 필요에 따라 위치를 바꾸는 방식으로 배열 끝까지 반복합니다. 단순하지만 비효율적인 알고리즘입니다.삽입 정렬 (Insertion Sort): 배열의 요소를 하나씩 순차적으로 비교하여 올..

[항해99 취업 리부트 코스 학습일지] 3주차 알고리즘 학습 Day 2

Q. 오늘 진행된 강의에서 학습한 내용은 무엇인가요?Heap(Priority Queue)힙은 완전 이진 트리의 일종으로, 우선순위 큐를 구현하기 위해 사용되는 자료구조이다. -힙의 특성힙은 각 노드가 하위 노드보다 큰(또는 작은) 우선순위를 가집니다.최대 힙(Max Heap)에서는 부모 노드가 자식 노드보다 항상 크고, 최소 힙(Min Heap)에서는 부모 노드가 자식 노드보다 항상 작습니다.우선순위 큐 구현에 사용되는 자료구조입니다.우선순위 큐는 삽입 순서에 상관 없이 우선순위가 높은 데이터가 먼저 나가는 형태의 자료구조Priority Queue 우선 순위 - 힙을 사용하여 구현되는 자료구조로, 각 요소가 우선순위를 가지고 있음- 높은 우선순위를 가진 요소가 먼저 처리됨- 예) 작업 스케줄링, 네트워크..