본문 바로가기

반응형

분류 전체보기

(208) GITHUB 방명록
[JAVA 파헤치기] Arrays, System.arraycopy 를 활용하여 배열 다루기 개발/Java / 2022. 5. 9. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 프로그래밍의 기초 개념인 배열에 관해서 포스팅하려고 합니다. 포스팅하기 전에! 이번 포스팅은 배열의 기본적인 개념을 알고 있다는 가정하에 정리했음을 미리 알립니다. 따라서 이번 주제는 [배열 다루기] 입니다! :) 배열을 다루는 방법은 굉장히 많은데요. 그중에서 Arrays와 System.arraycopy에 대해서 설명하겠습니다. 여기서 배열을 다룬다는 의미는 배열을 복사하거나 추가, 삭제 등 다양한 기능을 의미합니다. 이제 자세하게 설명을 하도록 하겠습니다. 1. System.arraycopy() arrayclass는 이름 그대로 배열을 복사하는, System 클래스의 메서드입니다. 해당 메서드는 반환을 하지 않는 void입니다. void arrayc..
[알고리즘] 동적 계획법(Dynamic Programming) 알아보기 개발/DS&Algorithms / 2022. 5. 7. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 이번에는 동적 계획법과 관련해서 포스팅하려고 합니다. 사실 동적 계획법은 어떠한 문제를 풀기 위한 전략 또는 기법에 가깝습니다. 따라서 추후 알고리즘을 다룰 때 해당 기법을 응용하여 개념을 정의하는 경우가 종종 있습니다. 이제 자세하게 알아보도록 하겠습니다. 동적계획법(Dynamic Programming, DP) DP라고도 불리는 동적 계획법은 하나의 큰 문제를 여러 개의 작은 문제로 나누어서 각 결과들을 저장한 뒤, 다시 큰 문제를 해결하는 방법입니다. 이것을 '상향식 접근법'이라고 하며, 가장 최하위 해답을 구한 후 이것을 활용하며, 상위 문제를 풀어가는 의미입니다. 캐시(cache) : 이미 계산한 값을 저장해 두는 메모리 중복되는 부분 문제(overla..
[JAVA 파헤치기] 문자 타입 'char' 와 문자열 'String' 의 진실 개발/Java / 2022. 5. 6. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 자바 언어를 공부하기 시작하신 분이라면, 자료형에 대해서 배웠을 것입니다. 주로 자료형 또는 데이터 타입이라고 부르는데요. 변수에 담길 값의 형태를 나타내 주는 중요한 개념입니다. 이러한 자료형에는 다양한 종류와 명칭이 있습니다. 포스팅을 시작하기 전에 기본 타입 자료형에는 어떤 종류가 있는지 알아보도록 하겠습니다. 기본 타입(Primitive type) 데이터의 실제 값을 의미 정수 타입, 실수 타입, 문자 타입, 논리 타입으로 분류 위 그림에서 보이는 내용들이 기본 타입에 해당합니다. 이제 오늘 포스팅 주제를 소개하겠습니다. 이번 포스팅은 문자 타입의 char와 문자열을 나타내는 String에 대해서 자세하게 정리하고, 두 가지를 비교해보려고 합니다. 평소..
[알고리즘] 재귀 용법(recursive call, 재귀 호출) 알아보기 개발/DS&Algorithms / 2022. 5. 2. 안녕하세요😎 백엔드 개발자 제임스입니다 :) 오늘은 재귀 용법 또는 재귀 호출에 대해서 포스팅하려고 합니다. 이 재귀 용법은 어떻게 보면 중요한 개념인데요. 앞으로 알고리즘을 학습하다 보면 굉장히 많이 접하기 때문입니다. 이제 자세하게 알아보도록 하겠습니다. 재귀 용법 (recursive call, 재귀 호출) 재귀는 자기 자신을 참조하는 것 함수 안에서 동일한 함수를 호출하는 형태 '재귀 함수'라고도 함 코드의 가독성이 좋음 스택 메모리 사용 예시 형태 public int sum(int num) { * * // 생략 * return sum(num-1); } 위 코드 내용처럼 함수 안에서 자신을 호출하는 방식입니다. 단, 재귀 함수를 사용할 때 호출시마다 입력값(파라미터)은 변합니다. 그리고 위 코드에서..
[알고리즘] 삽입 정렬(Insertion sort) 알아보기 개발/DS&Algorithms / 2022. 4. 26. 안녕하세요 🌟🌟 오늘 포스팅할 내용은 정렬 알고리즘 중, [삽입 정렬]입니다. 이번에도 역시 [버블 정렬], [선택 정렬]과 비슷한 방식으로 진행되고, 마찬가지로 구현이 어렵지 않습니다. 이제 삽입 정렬에 대해서 자세하게 알아보도록 하겠습니다 :) * 다양한 정렬 알고리즘 1. 버블 정렬 2. 선택 정렬 3. 삽입 정렬 4. 병합 정렬 5. 퀵 정렬 6. 힙 정렬 삽입 정렬(Insertion Sort) 이미 정렬된 상태에서 새로운 요소를 추가하여 비교한 후, 재정렬하는 방식 손 안의 카드를 정렬하는 방법과 유사 01. 그림으로 방식 이해하기 어센딩 방식을 예시로 들었습니다. 아래 [9, 1, 4, 2, 7]을 가진 배열이 있습니다. 1) 정렬을 하기 위해서 먼저 인덱스 1번 데이터를 인덱스 0번의 데이터..
[알고리즘] 선택 정렬(Selection sort) 알아보기 개발/DS&Algorithms / 2022. 4. 25. 안녕하세요🌟 이번 포스팅은 저번에 이어서 정렬 알고리즘의 [선택 정렬]에 대해서 알아보도록 하겠습니다. * 다양한 정렬 알고리즘 1. 버블 정렬 2. 선택 정렬 3. 삽입 정렬 4. 병합 정렬 5. 퀵 정렬 6. 힙 정렬 선택 정렬(Selection Sort) 주어진 배열(데이터) 속에서 전체 순회를 하여 최솟값을 찾고, 해당 최솟값을 배열의 맨 앞 데이터와 위치 교환 이와 같이 순회를 돌면서 최소값을(디센딩 방식은 최댓값을) 찾고 선택하여 교체하며 정렬하는 방식 단, 앞으로 이동한 최소값들은 다음 순회 때 순회 대상에서 제외됨 어떻게 보면 버블 정렬과 유사합니다. 01. 그림으로 방식 이해하기 어센딩 방식을 예시로 들었습니다. 1) 아래 그림처럼 정렬되지 않은 데이터를 가진 배열이 있습니다. 인덱스 0..

반응형