목록2026/04/30 (3)
I'm FanJae.
1. 문제 링크https://codeup.kr/problem.php?id=4701 코드업코드업은 프로그래밍을 배우고 싶은 사람들을 위한 온라인 학습 플랫폼입니다.codeup.kr 2. 문제 풀이모든 두 용액의 조합을 확인하면 O(N^2)이 걸린다.N은 최대 100,000이므로, 전체 조합을 직접 확인하는 방식은 사용할 수 없다. 따라서 용액의 특성값을 오름차순으로 정렬한 뒤, 가장 작은 값과 가장 큰 값에 각각 포인터를 둔다.두 값의 합이 0보다 작으면 합을 줄이기 위해 오른쪽 포인터를 왼쪽으로 이동한다. 각 단계마다 현재 합을 보고 정답을 갱신할지 판단한다. 3. 아이디어1. 정렬된 배열에서는 왼쪽 포인터를 오른쪽으로 이동하면 선택되는 값이 커진다.2. 오른쪽 포인터를 이동하면 선택되는 값이 작아..
1. 얕은 복사 / Shallow Copy- 배열이나 클래스와 같은 것을 복사할 경우, 위에서 다룬 것처럼 객체의 참조를 복사한다.int [] a = {1,2,3};int [] b = a; - 이처럼, 객체의 참조만 복사하는 것을 얕은 복사라고 한다.- C++ 의 경우 포인터를 소유하고 있을 때, 복사 생성자나 대입 연산자를 제대로 만들지 않을 경우, 포인터의 이중 해제(Dangling Pointer) 관련 문제가 있지만, C# 의 경우 GC(Garbage Collector)가 이를 관리하기 때문에 값을 공유하는 문제만 신경을 써도 괜찮아 보인다.2. 깊은 복사 / Shallow Copy- 일반적인 값 형식 자료형은 대입 시 값 자체가 복사된다. 따라서 내부에 참조형 필드가 없는 경우,에는 깊은 복사와 ..
1. 클래스(Class) 1) 클래스의 정의- 클래스는 상태(데이터)와 동작(기능)을 하나로 묶어 표현할 수 있는 참조 형식이다.- 객체지향 프로그래밍에서는 클래스를 이용해서 객체를 만들 수 있다.- 클래스는 객체를 만들기 위한 설계도라고 할 수 있다.- 클래스는 참조 형식으로, 변수에는 객체 자체가 들어있는 것이 아닌 객체가 있는 메모리 주소를 참조하는 참조값이 들어있는 형태다.2) 클래스의 기본 형태class 클래스이름{ // 필드 접근 제한자 데이터형 변수이름; // private int value; // 생성자(생략 가능) public 클래스이름() { } // 메서드 반환형 메서드이름() // public add(int a, int b) { }}- 위와 같은 형태..