no image
Call By Value와 Call By Reference
함수가 호출될 때, 일반적으로 메모리 내에서 함수를 위한 별도의 임시 공간이 생성됩니다. 이 공간은 주로 스택 프레임이라고 불리며, 함수 호출 시 할당되는 메모리 블록으로 사용됩니다. 스택 프레임에는 함수에서 사용되는 지역 변수 및 기타 관련 정보가 저장됩니다. 함수가 실행을 마치고 종료되면 해당 스택 프레임은 메모리에서 해제됩니다. 함수 호출 방식에는 주로 값에 의한 호출인 (call-by-value)와 참조에 의한 호출(call by referece)이 있습니다. Call By Value (값에 의한 호출) 함수 호출 시에 전달되는 변수의 값의 복사하여 함수의 인자로 전달합니다. 이러한 경우, 복사된 값은 함수 내부에서 지역적으로 사용되는 특성을 가지며, 함수 내부에서 해당 값이 변경되더라도 외부의 ..
2024.03.03
no image
Git Push ERROR(refusing to merge unrelated histories)
refusing to merge unrelated histories git pull 해서 병합 후 push를 하게 되면 git hub에 올라가야 하지만 그렇지 않고 fatal : refusing to merge unrelated histories가 발생..!! fatal : refusing to merge unrelated histories 발생이유 두 개의 Git 저장소가 서로 다른 커밋 히스토리를 가지고 있을 때 발생하는 오류입니다. 두 가지 상황 1. 새로운 저장소를 초기화하고 로컬 저장소에 이미 존재하는 원격 저장소와 병합하려고 할 때 발생 2. 이전에 병합되지 않은 두 개의 git 저장소를 병합할 때 발생 해결 방법 --allow-unrelated-histores //플래그 사용이 명령은 원격 ..
2024.02.29
GIT
no image
수식 표기법
수식 표기법 수식을 표현하는 방법으로 중위, 전위, 후위법이 널리 사용됩니다. 이러한 표기법들은 계산기를 포함한 컴퓨터 프로그램에서 수식을 표현하고 계산하는 데 사용됩니다. 각각의 표기법은 스택을 사용하여 계산을 수행할 때 유용합니다. 수식 표기법을 사용하는 이유는 연산자의 우선순위를 명확하게 할 수 있고, 복잡한 수식을 간단하고 명료하게 표현하기 위함입니다. 특히 전위나 후위 표기법을 사용하면 괄호를 사용하지 않아도 연산자의 우선순위를 명확히 파악할 수 있습니다. 중위 전위 후위 1+3*5 +1*35 135*+ a*b+8 +8*ab ab*8+ (2+2)+9 +9+22 22+9+ 전위 표기법 수식에서 연산자가 피연산자 앞에 위치하는 표기법이며 이 표기법에는 연산자가 피연산자들의 앞에 오기 때문에 피연산자..
2024.02.26
no image
탐욕법
Greedy Algorithm🏋 탐욕 알고리즘은 말 그래도 탐욕스러운 이라는 의미를 가지며 , 선택의 순간이 오면 눈앞에 보이는 최적의 상황만을 고려하여 최종적인 해답에 도달하는 방법을 말합니다. 이 알고리즘은 각 선택의 순가에는 최적으로 보일 수 있지만, 그 선택이 전체적으로 보았을 때 최적인지는 보장되지 않을 수 있습니다. Greedy Algorithm 불가능한 경우 1. 현재 상황에서는 마시멜로 1개를 받을 수 있습니다.(현재 시점에서의 최선의 선택) 2. 그러나 5분을 기다리면 2개의 마시멜로를 받을 수 있습니다. (미래를 고려한 선택) 그리디 알고리즘에 따르면 각 단계에서 현재 최선으로 보이는 선택을 하기 때문에 현재 시점에서 1개의 마시멜로를 받는 것이 선택될 것입니다. 그러나 미래를 고려할 ..
2024.02.22
no image
해시법
배열 배열 A에서 새로운 값인 36을 추가하게 되며 삽입할 위치가 a[5]와 a[6] 사이의 이진 검색법으로 조사하고 B의 이미지처럼 a[6]이후의 모든 요소를 하나씩 뒤로 이동하게 됩니다. 요소가 이동할 때 필요한 복잡도는 O(n)이므로 비용은 작다고 할 수 없습니다. 삭제 같은 경우도 똑같은 비용이 들어갑니다. 해시법 해시법은 데이터를 효율적으로 저장하고 검색하기 위한 기법으로, 간단한 연산을 통해 데이터의 저장 위치를 결정하는 방식입니다. 일반적으로는 해시 함수를 사용하여 데이터의 키를 해시값으로 변환 후 이 해시값을 이용하여 데이터를 저장하거나 검색합니다. 위와 같이 해시값을 index로 하여 key값과 data를 저장하는 자료구조를 해시 테이블이라고 합니다. 이 해시 테이블은 해시값을 인덱스로 ..
2024.02.20
no image
배열 & 링크드리스트
배열(Array) 배열은 정적 자료구조이며 배열을 생성할 때 크기를 미리 정해놓고 해당 크기 만큼의 연속된 메모리 공간을 할당받는 것을 의미합니다. 이런 특성으로 배열은 컴퓨터 메모리에서도 데이터를 연속적으로 저장할 수 있습니다. 이렇게 연속된 메모리 주소를 할당받는 배열은 각 데이터에 대한 인덱스를 갖게 되며 배열의 각 요소는 해당 요소의 인덱스를 통해 직접 접근할 수 있습니다. 예를 들어 보면 array[0], array[1], array[2], array[3]....와 같이 인덱스를 사용하여 배열의 요소에 접근할 수 있습니다. 이걸 배열의 장점 중 하나인 임의 접근을 의미합니다. 그러나 배열은 한 번 크기를 정하면 수정이 불가능합니다. 따라서 배열은 크기를 동적으로 조잘할 수 없는 단점이 있습니다...
2024.02.14
no image
스택, 큐
스택 컴퓨터 과학에서 매우 중요한 자료구조 중 하나이며 이름 그대로 스택은 데이터를 쌓아 올린 형태를 가지고 있습니다. 이를 비유하면, 식당에서 쌓여있는 접시 더미나 책상 위에 쌓아 올린 형태를 가지고 있습니다. 이를 비유하면, 식당에서 쌓여있는 접시 더미나 책상 위에 쌓인 책처럼 데이터가 차곡차곡 쌓이는 모습을 상상할 수 있습니다. 또한 데이터의 저장과 삭제가 한쪽 끝에서만 이루어지는 특징을 가지고 있습니다. 이 한쪽 끝을 보통 위쪽이라고 하며 새로운 데이터가 스택에 추가되면 그 데이터는 스택의 위로 올라갑니다. 이것을 PUSH라고 합니다. 반대로 데이터를 삭제할 때는 가장 위에 있는 데이터가 먼저 삭제됩니다. 이것을 POP이라고 합니다. 스택은 주로 함수 호출이나 재귀 알고리즘 등에서 사용됩니다. 예..
2024.02.13
no image
Intellij IDEA 로컬기록
Intellij IDEA 로컬기록 Intelij IDEA의 로컬 기록은 프로젝트의 수정 버전을 자동으로 기록하여 개발자가 변경 사항을 추적하고, 필요한 경우 복원할 수 있는 기능을 제공합니다. 변경 사항 복원 자동 기록 코드 편집, 테스트 실행, 애플리케이션 배포 등의 이벤트로 인해 발생한 프로젝트의 수정 버전을 자동으로 기록합니다. 파일 복원 중요한 코드를 삭제한 경우나 원치 않는 변경이 있을 때, 로컬 기록을 사용하여 해당 파일이나 변경 내용을 복원할 수 있습니다. 롤백 프로젝트에 버전 관리가 활성화되지 않았거나 마지막 커밋 이후 원치 않는 변경 사항이 있는 경우, 로컬 기록을 사용하여 파일을 이전 상태로 롤백할 수 있습니다. 설정 가능한 보존 기간 기본적으로 로컬 기록은 5일 동안 보존되지만, 이 ..
2024.02.09
no image
CRON 표현식
CRON 표현식 주기적으로 실행되어야 하는 작업을 정의하는 일반적인 방법입니다. 이것은 UNIX 및 유닉스 기반 시스템에서 널리 사용되며, 다양한 스케줄링 작업에 활용됩니다. CRON 표현식을 작성할 때 주의할 점은 각 필드가 해당 시스템의 로컬 시간대 및 설정에 따라 해석되기 때문에 때때로 시스템의 로컬화된 환경 설정에 따라 결과가 달라질 수 있기 때문에 이것을 고려해야 합니다. 필드 허용되는 값 허용되는 특수문자 년 1970 ~ 2099 , - * / 월 1 ~ 12 또는 JAN ~ DEC , - * / 요일 0 ~ 6 또는 SUN ~ SAT , - * / L # 일 1 ~ 31 , - * / L W 시 0 ~ 23 , - * / 분 0 ~ 59 , - * / 초 0 ~ 59 , - * / 특수 문자..
2024.02.08