본문 바로가기

전체 글32

C와 Java의 형변환(캐스팅) 비교 1. 기본형 캐스팅:C언어:int i = 10;float f = (float)i; // 명시적 캐스팅float f2 = i; // 암시적 캐스팅Java:int i = 10;float f = (float)i; // 명시적 캐스팅float f2 = i; // 암시적 캐스팅2. 포인터 관련:C언어:int* ptr = (int*)malloc(sizeof(int));void* vptr = ptr;int* back = (int*)vptr;Java:// Java는 포인터 캐스팅이 없음// 대신 객체 참조 캐스팅을 사용Object obj = new Integer(10); // 업캐스팅Integer num = (Integer)obj; // 다운캐스팅3. 구조체/클.. 2024. 10. 23.
C와 Java의 표준 출력 비교 1. 기본 출력 비교:C언어:#include int main() { printf("Hello World\n"); // 줄바꿈 포함 출력 putchar('A'); // 단일 문자 출력 puts("Hello"); // 자동 줄바꿈 포함 출력 return 0;}Java:public class Output { public static void main(String[] args) { System.out.println("Hello World"); // 줄바꿈 포함 출력 System.out.print("Hello"); // 줄바꿈 없는 출력 System.out.printf("Hello .. 2024. 10. 23.
빅세타(Big Theta) 표기법 빅세타 표기법은 알고리즘의 평균적인 실행 시간 복잡도를 나타내는 방법입니다. 빅오(Big O)가 최악의 경우 상한선을, 빅오메가(Big Omega)가 최선의 경우 하한선을 나타낸다면, 빅세타는 이 둘의 중간이라고 볼 수 있습니다.빅세타 표기법의 주요 특징:정의: 함수 f(n)이 어떤 양의 상수 c1, c2와 n0가 존재하여 모든 n ≥ n0에 대해 c1 * g(n) ≤ f(n) ≤ c2 * g(n)을 만족할 때, f(n) = Θ(g(n))이라고 표기합니다.의미: 알고리즘의 실행 시간이 특정 함수의 상수 배 내에서 위아래로 봉투처럼 감싸진다는 것을 의미합니다.정확성: 빅오나 빅오메가보다 더 정확한 실행 시간 추정을 제공합니다.대칭성: f(n) = Θ(g(n))이면 g(n) = Θ(f(n))입니다.1. 선형.. 2024. 10. 19.
빅오(Big O) 표기법 빅오 표기법은 알고리즘의 시간 복잡도나 공간 복잡도를 표현하는 방법으로, 주로 최악의 경우 성능을 나타냅니다.1. O(1) - 상수 시간:설명: 입력 크기와 관계없이 항상 일정한 시간이 걸립니다.예시: 배열의 인덱스로 직접 접근#include int constant_time_access(int arr[], int index) {return arr[index];}int main() {int arr[] = {1, 2, 3, 4, 5};printf("%d\n", constant_time_access(arr, 2));return 0;}2. O(log n) - 로그 시간:설명: 입력 크기가 증가함에 따라 실행 시간이 로그적으로 증가합니다.예시: 이진 검색#include int binary_search(int ar.. 2024. 10. 19.
지역변수와 전역변수의 개념 1.지역 변수 (Local Variables):정의:메소드나 블록 내에서 선언된 변수선언된 블록 내에서만 사용 가능특징:메소드나 블록이 실행될 때 생성되고, 종료될 때 소멸됨다른 메소드에서 접근할 수 없음초기화하지 않으면 사용할 수 없음예시:java:public void exampleMethod() { int localVar = 10; // 지역 변수 System.out.println(localVar);} // localVar는 여기서 소멸됨2. 전역 변수 (Global Variables):자바에서는 strict한 의미의 전역 변수가 없지만, 이와 유사한 개념으로 클래스 변수(static 변수)와 인스턴스 변수가 있습니다.클래스 변수 (Static Variables):클래스 내에서 static 키워드.. 2024. 10. 18.
Java의 public static void main(String[] args)와 C 언어의 main(int argc, char *argv[]) 함수 Java의 main 메소드:public static void main(String[] args)C 언어의 main 함수:int main(int argc, char *argv[])접근 제어자 (Java only):public: main 메소드는 JVM에 의해 호출되어야 하므로 public으로 선언됩니다.정적 메소드 (Java only):static: 객체 생성 없이 호출될 수 있어야 하므로 static으로 선언됩니다.반환 타입:Java: void - 반환값이 없음을 의미합니다.C: int - 프로그램의 종료 상태를 반환합니다 (0은 성공, 다른 값은 오류).메소드/함수 이름:둘 다 main으로, 프로그램의 시작점을 나타냅니다.매개변수:Java: String[] args문자열 배열로, 명령줄 인자를 받습니다.. 2024. 10. 18.