Java File 클래스 완벽 가이드

1. 개요 java.io.File 클래스는 파일이나 디렉터리 경로의 추상적 표현입니다. 주로 파일 및 디렉터리의 생성, 검색, 삭제 작업에 사용됩니다. 2. 생성자 File 클래스는 세 가지 주요 생성자를 제공합니다: public File(String pathname) : 주어진 경로 문자열을 추상 경로로 변환하여 File 객체 생성 public File(String parent, String child) : 부모 경로와 자식 경 ...

8월 8일 13:55에 게시됨

리스트 구조 이해 및 기본 연산 실습

연결 리스트 기초 개념 배열과 연결 리스트의 차이점을 이해하는 것이 중요합니다. 배열은 연속된 메모리 공간에 저장되지만, 연결 리스트는 각 요소가 다음 요소를 가리키는 포인터로 연결됩니다. 이로 인해 삽입/삭제 시 시간 복잡도가 다르며, 특히 중간 위치에서의 조작이 유연합니다. 203. 연결 리스트 요소 제거 가상 헤드 노드를 사용하면 첫 번째 노드 삭제 시 처 ...

8월 5일 03:48에 게시됨

이진 트리와 힙 구조의 핵심 개념 및 응용

트리 구조 개요 트리는 계층적 관계를 표현하는 비선형 자료구조로, 유한 개의 노드로 구성된다. 루트 노드에서 시작하여 각 노드는 자식 노드들을 가질 수 있으며, 전체 구조는 순환하지 않는다. 기본 용어 노드의 차수(Degree): 자식 노드의 수. 예를 들어 A 노드가 3개의 자식을 가지면 차수는 3. 단말 노드(Leaf Node): 자식이 없는 노드. 부모/자식 노 ...

7월 24일 23:35에 게시됨

자바 메서드 활용과 재귀 호출

메서드 기본 개념 메서드는 특정 기능을 수행하는 코드 블록입니다. 주요 장점: 코드 모듈화로 복잡성 감소 재사용성을 통한 개발 효율 향상 가독성 및 유지보수성 개선 // 윤년 판별 메서드 예시 public class CalendarUtil { public static boolean checkLeapYear(int year) { return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } } ...

7월 19일 05:33에 게시됨

이진 트리 탐색 알고리즘 실습 - DAY12

알고리즘 기록 제12일 [이진 트리] 1. LeetCode 226. 이진 트리 뒤집기 주어진 이진 트리의 루트 노드를 기준으로 트리를 완전히 뒤집은 후, 새로운 루트를 반환하세요. 입력: root = [4,2,7,1,3,6,9] 출력: [4,7,2,9,6,3,1] 문제 링크 핵심 접근 방식: 재귀적 뒤집기: 현재 노드와 그 자식들을 순차적으로 처리하며 트리 전체를 재귀적으로 뒤집습니다. 자식 교환: 각 ...

7월 18일 17:37에 게시됨

이진 트리 재귀 완전 정복: 직관에서 원리 이해로

서론: 재귀에 대한 솔직한 고백 재귀를 코딩할 때 종종 이런 경험이 있다. 코드는 작동하지만, "왜 이게 맞는지"는 설명하기 어렵다. 예를 들어: 왜 트리를 해제할 때 후위 순회를 써야 할까? 어떤 문제에서는 논리합(||)을 쓰고, 어떤 문제에서는 논리곱(&&)을 쓸까? 함수를 분리해서 작성해야 하는 경우는 언제일까? 이 글은 ...

7월 10일 05:14에 게시됨

자바 재귀 및 바이트 스트림을 활용한 파일 복사

재귀 이해 메소드가 자기 자신을 호출하는 프로그래밍 기법으로, 다음 주의사항이 적용됩니다: 반드시 종료 조건(exit condition)이 존재해야 함 호출 깊이 제한으로 스택 오버플로우 방지 생성자에서는 재귀 사용 불가 기본 재귀 예제 public class RecursionExample { public static void main(String[] args) { recursiveMethod(3); } stat ...

7월 7일 00:58에 게시됨

알고리즘 실습 문제 풀이 분석

1부: 재귀 문제 1: 숫자 세기 /* n=1, 결과 1 n=2, 결과 2 (12, 2) n=3, 결과 2 (13, 1) n=4, 결과 4 (14, 13, 24, 124) n=5, 결과 4 (15, 25, 125, 5) 관찰 결과: n이 홀수이면 f[n] = f[n-1] n이 짝수이면 f[n] = f[n-1] + f[n/2] */ #include <iostream> using namespace std; const int MAX = 10000; int dp[MAX]; int main() { dp[1] = 1; int n; ...

7월 5일 00:14에 게시됨

스택과 재귀: 385, 341, 394 문제 해결

385. 미니 구문 분석기 (중간) 문자열 s가 정수 중첩 리스트를 나타낸다고 가정할 때, 이를 구문 분석하는 파서를 구현하고 파싱 결과인 NestedInteger를 반환하세요. 리스트의 각 요소는 정수 또는 정수 중첩 리스트일 수 있습니다. 예제 1: <strong>입력:</strong> s = "324", <strong>출력:</strong> 324 <strong>설명:</s ...

7월 2일 04:22에 게시됨

8퀸 난제: 재귀와 반복을 활용한 백트래킹 구현

8퀸 난제는 체스판 위에 8개의 퀸을 서로 공격하지 않도록 배치하는 고전적인 백트래킹 문제다. 이번 글에서는 재귀적 접근과 반복적 접근 두 가지 방식으로 해결해본다. 재귀적 백트래킹 재귀 방식은 현재 행에 퀸을 배치하고, 유효성 검증 후 다음 행으로 진행하는 구조다. 모든 행에 성공적으로 배치되면 해답을 출력한다. #include <iostream> #include <c ...

7월 1일 02:16에 게시됨