
[C++] 원형 큐 (Circular Queue) 구현하기
2021. 3. 10. 23:24
Programming/C│C++
원형 큐를 사용하는 이유 자료구조를 배우셨다면 큐 (Queue) 에 대해서 배우셨을 겁니다. 선입선출 (FIFO) 의 구조를 가지기 때문에, 수많은 알고리즘에서 큐가 사용됩니다. 만약 큐를 배열에 저장한다면 다음과 같은 상황이 만들어집니다. 이 상황은 어떤 상황일까요? 현재 큐에는 7, 5 라는 값이 들어있고, 출력 시 순서대로 7, 5 이 출력됨을 아실겁니다. (만약 이 부분이 이해가지 않는다면, 큐를 공부하시면 되겠습니다.) 이 상황에서, 인덱스가 0인 공간을 활용하려면 어떻게 해야 할까요? 물론 배열의 모든 원소들을 앞당겨줄수도 있지만, 비용상의 문제로 이러한 작업은 비효율적입니다. 즉, 앞당김 작업없이 지속적인 큐의 사용을 위해서 우리는 원형 큐를 사용해야 합니다. 동작 원리 큐를 이해하고 있다면..

[알고리즘] Counting Sort (계수정렬) 이란? (C++로 구현하기)
2021. 3. 10. 22:14
Programming/알고리즘
계수정렬 (Counting Sort) 이란? 굉장히 빠른 속도를 자랑하는 정렬 (Sort) 이다. 배열에 들어있는 원소의 최대값을 k 라고 가정하면 O(k + n) 의 시간복잡도로 정렬할 수 있다. 그러므로 최선의 경우에서는 퀵정렬보다도 빠르다. 하지만 k 값이 클 경우, 예를 들어서 배열 내의 원소의 최대값이 매우 큰 숫자일 경우 비효율적인 알고리즘이다. 그러므로 배열 내의 원소의 값이 간단한 경우 (예, 1~2자리의 숫자) 에 효율적인 알고리즘이다. 실행 과정 계수정렬은 배열 내에 속해있는 모든 원소를 인덱스로 가지는 배열을 생성한다. 그리고, 각각의 인덱스에 배열 내의 원소가 몇번 들어가는지 계산한다. 아래와 같은 정렬하기 원하는 배열이 있다고 가정하자. 배열 내의 각 원소가 몇번 나오는지 계산하기..

[Android] 안드로이드 스튜디오 유용한 단축키
2021. 1. 1. 19:55
Mobile/Android
Class의 API 문서 확인 Ctrl + Q Build 및 실행 Shift + F10 Method 파라미터 후보 확인 Ctrl + P 재정의 (Override) 함수 만들기 Alt + Insert 'Override Method' 선택 전체 프로젝트에서의 코드 검색 (Find in Path) Ctrl + Shift + F

[Spring] Lombok 이란? (+설치방법)
2020. 12. 13. 21:41
Back-End/Spring
Lombok이란? Lombok 은 Java에서 개발할 때 자주 사용하는 메서드를 자동으로 생성해주는 도구이다. getter, setter, toString 등의 메서드는 클래스를 만들 때 빈번히 코딩한다. 이러한 코딩 과정을 줄여주는, '코드 다이어트 라이브러리' 라고 할 수 있다. Lombok 의 설치방법 (윈도우10 기준) 아래의 Project Lombok 홈페이지에 접속해서 다운로드할 수 있다. projectlombok.org/ Project Lombok projectlombok.org 'Download' 탭으로 이동해서 '1.18.2' 버전을 다운로드 한 후, 아래와 같이 Java 명령어를 통해서 실행시켜 준다. 아래와 같은 창이 나오면, Eclipse 혹은 STS의 경로를 설정하고, 'Insta..

[Spring] Spring 프로젝트의 구조 / 생성 및 초기 설정 방법
2020. 12. 13. 21:23
Back-End/Spring
Spring 프로젝트를 만드는 방법 STS (Spring Tool Suite)를 이용해 Spring 프로젝트를 만드는 방법은 크게 3가지이다. - 처음부터 스프링 프로젝트를 지정하고 생성하는 방식 - Maven이나 Gradle 프로젝트를 생성한 후, 프레임워크를 추가하는 방식 - 직접 프레임워크 라이브러리를 추가하는 방식 우리는 처음부터 스프링 프로젝트를 지정하고 생성하겠다. Spring 프로젝트의 생성 및 초기 설정 여기에서의 Spring 프로젝트는 다음의 버전을 기준으로 한다. - STS 3.9.x - JDK 1.8 (8u172) - Tomcat 9.x STS에서 다음과 같이, 'Spring Legacy Project'를 선택해서 프로젝트를 만든다. 그 이후, Project name을 입력하고, 아래..

[Spring] Spring은 무엇인가? (+설치방법 / 윈도우10)
2020. 12. 12. 22:58
Back-End/Spring
Spring은 무엇인가? - Spring Framework는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다. - 동적인 웹 사이트를 개발하기 위한 다양한 서비스를 제공한다. - 특히, 우리나라의 경우 전자정부 표준 프레임워크의 기반 기술로서 쓰이고 있다. - 웹 프로그래머, 특히 백엔드 분야의 취업을 원한다면 공부하는 것을 추천하는 기술이다. - Spring은 Java로 구현하며, 특히 JSP와 Servlet에 대한 이해가 필수적이다. Spring의 역사 Spring이 등장하기 이전에, WAS를 만들기 위한 여러 기술이 있었다. 이에 대해 간략히 정리해보자면 다음과 같다. (1) CGI (Common Gateway Interface) - 원시의 Web Server는 HTML 등의 정적 데이터를 ..