본문 바로가기
반응형

분류 전체보기47

[자료구조] 자료구조 기본 개념 알고리즘의 기본 개념 공간 복잡도 (Space Complexity)프로그램이 실행되는 동안 필요한 메모리의 총량. → 변수, 배열, 재귀 스택 등의 크기로 결정됨예: 크기 N의 배열을 사용하는 프로그램은 O(N) 공간이 필요함.시간 복잡도 (Time Complexity)프로그램이 완료될 때까지 걸리는 연산 횟수나 시간을 나타냄예: 배열의 모든 원소를 더하는 프로그램은 O(N) 시간이 걸림. 알고리즘의 5가지 조건입력(Input)외부에서 제공되는 자료가 최소 하나 이상 있어야 함예: 덧셈 프로그램은 두 수 a, b를 입력받음 → a=3, b=5출력(Output)알고리즘 수행 결과로 최소 하나 이상의 결과가 나와야 함예: 3 + 5 = 8 출력명백성(명확성, Definiteness)각 단계의 의미가 명확하고.. 2025. 11. 1.
[운영체제] 예제로 배우는 리눅스 명령어 - 심화편 1. 디렉토리 구조 출력 (tree / ls -R)개념: 디렉토리 구조를 계층적으로 표시명령어: tree입력tree /home/user출력/home/user├── documents│ ├── resume.docx│ └── report.pdf├── downloads│ └── setup.sh└── pictures ├── cat.png └── dog.jpg 2. 파일 끝부분 보기 (tail)개념: 파일의 마지막 n줄을 확인 (로그 확인용)명령어:입력tail -n 5 access.log출력192.168.0.2 - - [31/Oct/2025:10:15:23] "GET /index.html HTTP/1.1" 200 512192.168.0.2 - - [31/Oct/2025:10:15:24] "GE.. 2025. 10. 31.
[DP] Dynamic Programming (동적 계획법) 정복하기 문제: 자판기 조합 수 세기자판기에는 여러 상품이 있고, 각 상품의 가격이 주어진다. 목표 금액 N원이 주어질 때, 상품을 각 1번씩만 사용할 수 있다고 하면(같은 가격이라도 서로 다른 상품이면 각기 1번씩 선택 가능)가격 합이 정확히 N원이 되는 선택 방법의 가짓수를 구하라.선택 순서는 고려하지 않는다(즉, {A,B}와 {B,A}는 같은 방법).입력 형식첫 줄에 정수 N (1 ≤ N ≤ 10,000)둘째 줄에 정수 M (1 ≤ M ≤ 2,000): 상품 개수셋째 줄에 길이 M의 정수 배열 prices: 각 상품 가격 (1 ≤ prices[i] ≤ N)출력 형식합이 정확히 N원이 되는 선택 방법의 가짓수를 정수로 출력한다.설명각 상품은 0/1 방식으로 한 번만 고를 수 있다.같은 값이 여러 번 등장할 수.. 2025. 10. 31.
[Python] 문제로 익히는 Python sort() vs sorted()반환값None (원본 수정)새 리스트 반환사용 대상리스트만 가능모든 반복가능 객체원본 변화✅ 변경됨❌ 원본 변화 없음문법list.sort()sorted(iterable) 얕은 복사 (Shallow Copy)객체의 주소만 복사 → 내부 데이터는 공유됨a = [1,2,[3,4]]b = a[:]b[2][0] = 77print(a) # [1,2,[77,4]] 깊은 복사 (Deep Copy) 완전히 새로운 객체를 재귀적으로 복제내부 리스트까지 분리됨 ✅import copya = [1,2,[3,4]]b = copy.deepcopy(a)b[2][0] = 55print(a) # [1,2,[3,4]] ← 영향 없음!객체 참조와 메모리 구조 특징b = a대입✅ 공유a[:], list.. 2025. 10. 30.
[JAVA] 문제로 풀어보는 JAVA JAVA의 핵심 개념객체지향 프로그래밍(OOP)캡슐화데이터 보호 + 메서드만 통해 접근private + getter/setter상속부모의 코드를 재사용extends다형성같은 요청 → 다르게 동작오버라이딩/오버로딩추상화핵심 인터페이스만 노출abstract, interface 1. 캡슐화데이터(필드)를 보호하고, 메서드를 통해서만 접근하도록 하는 것외부에서 멋대로 값을 바꾸면 문제 발생 가능내부 구조 변경 시 외부 코드 영향 최소화class Person { private int age; // 감추기! public void setAge(int a) { if(a >= 0) age = a; // 안전한 검증 } public int getAge() { return a.. 2025. 10. 30.
[C언어] 문제로 풀어보는 포인트 개념 포인터 핵심 개념 int *p;p는 주소를 저장하는 변수(포인터)*p는 p가 가리키는 값 int x = 10;printf("%p", &x); // x가 저장된 메모리 주소 출력&x → x의 주소 int x = 10;int *p = &x; // 포인터 변수 선언 (x의 주소 저장)printf("%d", *p); // p가 가리키는 곳의 값 → 10 print 출력 결과xx의 값10&xx의 주소0x7ffeefbff45c (주소는 매번 달라짐)px의 주소가 저장됨0x7ffeefbff45c*pp가 가리키는 값(x의 값)10*&x주소 → 값10&*p값에 접근했다가 다시 주소0x7ffeefbff45c p == &x // ✅같다! *p == x // ✅같다! &*p == p // ✅같다!.. 2025. 10. 30.