목록전체 글 (572)
오봉이와 함께하는 개발 블로그
큐(Queue) 선형 리스트 구조의 특별한 형태 기억장소의 한쪽 끝에서 데이터 입력이 이루어지고, 다른 한쪽에서 데이터의 삭제가 이루어지는 구조 먼저 삽입한 데이터가 먼저 삭제되는 선입선출(FIFO : First In First Out)구조 전위 포인터(Front) 데이터가 삭제되는 끝을 가르키는 포인터 후위 포인터(Rear) 데이터가 삽입되는 끝을 가르키는 포인터 큐에서 오버플로우 해결 방법 후위 포인터(Rear)의 값이 n(큐의 크기)과 같을 때 새로운 데이터를 삽입하면 오버폴르오 발생 이동 큐(moving queue) 사용 앞 부분이 비어 있는 경우 큐의 데이터를 앞 부분으로 이동 문제 : 데이터 이동에 따른 시간적 부담 원형 큐(circular queue) 사용 선형 큐의 앞(front)과 뒤(r..
자료 구조 순차 리스트 배열 / 행렬 / 레코드 스택 / 큐 / 데크 연결 리스트 단일 연결리스트 원형 연결리스트 이중 연결리스트 트리 일반 트리 이진 트리 순차 리스트 각 자료가 메모리 중에서 서로 이웃해 있는 구조 선형 구조라고도 함 메모리에 연속되어 저장 배열 / 행렬 / 레코드 / 스택 / 큐 / 데크 배열 크기와 데이터형이 같으며 동일한 이름을 같은 원소들의 연속적 저장 영역 배열의 원소는 메모리 내에서 연속적으로 순서대로 저장 각 배열의 원소는 첨자([0]~[n])로 구별 레코드 서로 다른 데이터 형태와 크기로 구성되어 있는 이질적 데이터 구조 예 : 다양한 사람들에 대한 자료들인 이름, 주민등록번호, 주소 등 서로 관계있는 여러 자료를 한 개의 조로 묶어서 구성 배열과 차이점 : 배열은 데이..
Algorithmday_2 정리 (2021.11.29 월요일) 동적 프로그래밍 기법(Dynamic Programming) 분할 정복 기법과 유사하게 부분 문제의 해답을 이용하는 방식으로 문제를 해결하는 방식 주어진 문제를 여러 개의 소문제로 분할하여 문제를 해결 상향식 설계 기법 작은 문제부터 먼저 해결한 후 그 결과를 큰 문제에서 활용함으로써 효율성을 높이는 방법 동적 프로그래밍 방식 적용 방법 분할 정복식처럼 문제를 나눈 후 주어진 부분 문제들을 한 번 계산한 후에는 특정 장소에 저장 이 부분 문제의 해가 필요할 때 이를 다시 계산하지 않고 이전에 저장해둔 결과 이용 일반적으로 부분 문제의 값을 저장하는 장소는 배열 사용 분할 정복 기법 VS 동적 프로그래밍 기법 분할 정복 기법(하향식) 분할되는 소..
Algorithmday_2 정리 (2021.11.29 월요일) 욕심쟁이 기법(Greedy Method) 이어서.... 최적 대합을 구성할 수 있는 집합을 만들기 위해 필요한 원소들 각 단계마다 하나씩 선택해 나가는 방법 선택을 하는 매 순간마다 현재 상태에서 가장 좋아보이는 원소를 선택하는 전략 최적의 해를 찾는 전형적인 방법 즉, 각 순간 지역적으로 가장 좋아 보이는 선택이 모여 최종적으로도 가장 좋을 것이라 생각하기 때문에 나온 기법 최적화 문제를 해결할 수는 없지만 많은 경우의 문제에 적용 가능 욕심쟁이 기법 적용 예(이어서....) 최단 경로 문제(Dijkstra의 최단 경로 알고리즘) 하나의 출발점에서 모든 종착점으로의 최단 경로를 찾는 문제 네트워크에서 하나의 시작 정점에서 모든 다른 정점까지..
Artineer Spring 7주차 강의노트 데이터 영속화 H2는 메모리에서만 동작되기 때문에 실제 데이터로 사용할 수 있도록 영속화를 해야 한다. Docker 개발환경에 따라 종속적인 프로그램을 '컨테이너'에 관리할 수 있다. 컨테이너에는 어플리케이션뿐 아니라 환경변수같은 것들 모두 저장된다. 원래 작동하던 호스트 환경에서 다른 황경으로 옮겨야 할 때 문제가 발생할 수 있지만, Docker를 통해 컨테이너로 작동 시키면 원래 호스트에 대한 시스템의 의존성이 사라지게 된다. Docker는 image를 통해 버전 관리가 되기 때문에 새로운 버전을 배포했을 때 문제가 발생하면 다시 전 버전의 image 배포를 통해 기존보다 더 간단하게 해결할 수 있다. docker를 통해 image를 다운 받..