스택의 정의 최근에 저장한 데이터를 먼저 사용하는 구조로 LIFO(Last In First Out) 구조라고 칭함. 스택의 용어 자료 구조의 하나로서 자료의 삽입과 삭제가 한쪽 끝에서만 일어나는 선형 목록, 밑이 막힌 통을 세워 놓은 것으로 생각하면 된다. 자료의 삽
조건 1은 경로, 0은 벽 이동은 우, 우하, 하, 좌하, 좌, 좌상, 상, 우상의 순으로 1을 만나면 전진 입구: (0,0), 출구: (10,15) > ## 문제 미로에 대하여 '*'로 출력하시오. >## 문제 해결 입구에서 1을 따라 전진하다가 막히면 이전으로
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.코딩 테스트의 핵심 중 하나는 문제마다 주어진 시간 복잡도를 고려해 적절한 알고리즘을 선택하는 것입니다.처음에 알고리즘을 잘못 선택하면 아무리 코드를 잘 짜려고
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.프로그램에서 발생하는 문법 오류나 \*\*논리 오류를 찾아 바로잡는 과정을 디버깅(debugging)이라고 합니다. 문법 오류는 컴파일러가 자동으로 찾아 주므로
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.기본 자료구조인 배열과 리스트는 비슷한 점도 많지만 다른 점도 많습니다. 두 자료구조의 특징을 정확하게 이해하고 문제가 요구하는 조건에 따라 적절하게 선택해 사용
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.구간 합은 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘입니다. 코딩 테스트에서 사용 빈도가 높으니 꼭 알아 두기 바랍니다.구
투 포인터 알고리즘은 주로 정렬된 배열 또는 리스트에서 사용되며, 두 개의 포인터를 사용하여 특정 조건을 만족하는 부분 배열이나 부분 리스트를 찾는 알고리즘입니다. 일반적으로 배열이나 리스트의 특정 구간을 순차적으로 탐색할 때 사용됩니다.포인터 초기화: 알고리즘을 시작
슬라이딩 윈도우 알고리즘은 고정 크기의 윈도우를 가지고 이를 이동시키면서 문제를 해결하는 알고리즘입니다. 주로 연속된 구간을 탐색하거나 구간 내의 최소/최대 값을 찾을 때 사용됩니다. 윈도우의 크기는 문제의 조건에 따라 다르게 설정될 수 있습니다.윈도우 초기화: 알고리
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.스택과 큐는 배열에서 발전된 형태의 자료구조입니다. 스택과 큐는 구조가 비슷하지만 처리 방식은 다릅니다.스택stack은 삽입과 삭제 연산이 후입선출LIFO로 이뤄
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.정렬 알고리즘버블(bubble) : 데이터의 인접 요소끼리 비교하고, swap 연산을 수행하며 정렬하는 방식선택(selection) : 대상에서 가장 크거나 작은
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.선택 정렬(selection sort)은 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법입니다. 선택 정렬은 구현 방법이 복잡
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.삽입 정렬(insertion sort)은 이미 정렬된 데이터 범위에 정렬되지 않은 데이터를 적절한 위치에 삽입시켜 정렬하는 방식입니다. 평균 시간 복잡도는 O(n
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.퀵 정렬(quick sort)은 기준값(pivot)을 선정해 해당 값보다 작은 데이터와 큰 데이터로 분류하는 것을 반복해 정렬하는 알고리즘입니다. 기준값이 어떻게
해당 포스트는 이지스퍼블리싱, 『알고리즘 코딩테스트 자바 편』, Gene 김종관 을 참고하여 작성하였습니다.병합 정렬(merge sort)은 분할 정복(divide and conquer)방식을 사용해 데이터를 분할하고 분할한 집합을 정렬하며 합치는 알고리즘입니다. 병합