본문 바로가기

반응형

old/Programming

(103)
힙 자료구조란 정의 힙(Heap)은 이진 트리(Binary Tree) 기반의 자료 구조로서, 최댓값이나 최솟값을 빠르게 찾기 위해 사용됩니다. 종류 힙은 일반적으로 최소 힙(Min Heap)과 최대 힙(Max Heap)으로 나뉩니다. 최소 힙은 부모 노드가 자식 노드보다 작거나 같은 값을 가지며, 최대 힙은 부모 노드가 자식 노드보다 크거나 같은 값을 가집니다. 사용해야 할 때 다음과 같은 경우에 힙을 사용할 수 있습니다: 우선순위 큐(Priority Queue)를 구현해야 할 때 최댓값 또는 최솟값을 빠르게 찾아야 할 때 정렬된 상태를 유지하며 요소를 삽입하거나 삭제해야 할 때 예제 다음은 자바에서 힙 자료구조를 사용하는 예제 코드입니다: import java.util.PriorityQueue; public clas..
Java 메소드 매개변수 참조 변경 불가: 왜 그럴까요? 질문 Java에서는 메소드 매개변수로 전달된 참조를 변경하여 원본 객체를 수정하는 것이 불가능합니다. 왜 그럴까요? 개요 Java에서는 메소드 매개변수로 전달된 배열의 참조를 변경하여 원본 배열을 수정하는 것이 불가능합니다. 이유 Java는 메소드 호출 시 매개변수를 값에 의한 복사(call by value)로 전달합니다. 배열은 참조 타입이므로, 메소드 내부에서 배열 매개변수에 새로운 배열을 할당하면 해당 매개변수는 새로운 배열을 가리키게 됩니다. 그러나 이 변경은 메소드 외부에 있는 원본 배열에는 영향을 주지 않습니다. 이는 자바가 call by value language라 불리는 이유입니다. 사용 방법 Java에서는 배열을 직접 수정하는 것이 아니라 복사하여 변경한 후, 변경된 배열을 새로운 변수에..
backtracking 알고리즘이란? 정의 Backtracking 알고리즘은 가능한 모든 해를 탐색하면서 최적의 해를 찾는 방법입니다. 백트래킹은 결정 문제(Decision Problem)를 해결하는 알고리즘 기법 중 하나로, 모든 가능한 후보 해를 탐색하면서 해를 찾는 방법입니다. 결정 문제란 "예" 또는 "아니오"로 답할 수 있는 문제를 말합니다. 백트래킹은 모든 가능성을 조사하되, 불필요한 경로는 미리 차단하여 실행 시간을 줄이는 효율적인 기법입니다. 구조 Backtracking은 재귀적인 접근 방식을 사용합니다. 후보 해를 선택하고 유효성을 검사한 후, 유효한 경우 해를 저장하거나 결과를 처리합니다. 그 다음 단계로 진행하고, 문제를 더 작은 부분 문제로 축소하여 재귀적으로 해결합니다. 불가능한 상황이 발생하면 이전 단계로 돌아가서 ..
부분문자열과 순열, 그리고 조합의 차이점, 경우의 수란? 부분 문자열 (Substring) 부분 문자열은 원래 문자열의 연속된 일부 문자를 의미합니다. 부분 문자열은 원래 문자열에서 문자들을 선택하거나 선택하지 않고 구성될 수 있습니다. 원래 문자열의 순서를 유지하면서 문자들을 연속적으로 선택하거나 제외하여 만들 수 있는 모든 가능한 문자열을 말합니다. 예를 들어, "abc"라는 문자열의 부분 문자열은 ””, "a", "b", "c", "ab", "bc", "ac", "abc” 입니다. The length of the string (n) is n Total substrings = n * (n + 1) / 2 순열 (Permutation) 순열은 원래 문자열의 문자들로 만들 수 있는 모든 가능한 순서를 가지는 문자열입니다. 즉, 원래 문자열의 문자들을 모두 사용..
자바연산자 >>>와 >>의 차이점 정의 자바에서 >>와 >>>는 비트 시프트 연산자로, 정수 값을 오른쪽으로 비트 단위로 이동시킵니다. 차이점 >> (부호 있는 오른쪽 시프트): 부호를 유지하면서 오른쪽으로 비트를 이동시킵니다. 양수인 경우, 왼쪽에 0으로 채워지고 음수인 경우, 왼쪽에 1로 채워집니다. 시프트 연산으로 인해 새로 생기는 비트는 제거됩니다. >>> (부호 없는 오른쪽 시프트): 부호 비트를 무시하고 오른쪽으로 비트를 이동시킵니다. 양수와 음수 모두 왼쪽에 0으로 채워집니다. 시프트 연산으로 인해 새로 생기는 비트는 제거됩니다. 예제 int x = 10; // 10은 이진수로 1010입니다. int y = -10; // -10은 이진수로 11111111111111111111111111110110입니다. int result1..
SQL Operator Precedence Table Operator Description Precedence INTERVAL Return the index of the argument that is less than the first argument 1 BINARY COLLATE This is a type that stores binary byte strings This clause override whatever the default collation is for comparison 2 ! Negate values 3 -A ~A It change the sign of the operand It inverts the bits of operand 4 ^ Bitwise XOR 5 * / DIV MOD Multiplication operator Division..
무료 자바 설치 하는 법 Java JDK 프로그래밍 언어 중 하나인 자바를 사용하기 위해서는 Java Development Kit(JDK)가 필요합니다. 이를 이름구분없이 Java라고 불럿습니다. 그리고 이 자바 JDK는 무료였습니다. Oracle이라는 회사에서 오픈소스 였던 Java를 사고, 이를 유료화 시켰습니다. 이미 무료 JAVA를 쓰던 기업들은 이미 사용하던 프로그램이 있기때문에 Java를 한순간에 포기할수 없었습니다. 그래서 수많은 무료 JDK프로그램이 생겨났습니다. 환경변수란? 환경변수는 원래 소스코드를 컴파일하여 프로그램으로 만들때 필요한 설정 중 하나 입니다. 소스코드를 작성하고, 이를 컴파일 하는 명령어를 사용해서 소스코드를 컴파일을 할 때 JDK의 위치를 일일히 넣지 않고, 컴퓨터가 바로 알수 있도록 설정해주..
아나콘다, 파이참 가상환경 설정하기: 단계별 가이드 아나콘다 정의 Python 및 R 언어의 패키지이며, 의존성 관리 및 배포를 편리하게 해주는 조건부 무료 오픈 소스 패키지 관리자이다. 2020년부터 개인 이용자, 대학, 비영리단체, 200인 미만 중소기업에게만 무료이고 정부 및 200인 이상의 기업에게는 유료로 바뀌였다. 가상환경을 사용하는 이유 아나콘다를 사용하는 이유는 사용하는 라이브러리와 파이썬의 버전을 관리하기 위해서 입니다. 이를 위해서 가상환경을 셋팅하고 이름을 지어주면 그 이름을 가상환경에 저장된 버전들과 라이브러리들이 있고. 나중에 다른곳에 옮긴다거나 혹은 다시 설치를 할때 무엇이 필요한지 쉽게 알수 있습니다. 아나콘다 가상환경 셋팅 아나콘다 설치 https://www.anaconda.com/ 아나콘다를 다운로드 해서 설치 기본경로로 사..

반응형