Rule of three : 이 규칙은 다음 중 하나라도 클래스에서 정의한다면, 아마도 반드시 모두 정의해야 할 것이라 주장합니다: 소멸자 (Destructor) 복사 생성자 (Copy Constructor) 복사 대입 연산자 (Copy Assignment Operator) ●C++는 다음과 같은 멤버 함수를 자동으로 제공한다. (더 있지만, Rule of three에 쓰이는 것만 설명하겠다) 디폴트 소멸자(파괴자) : 객체의 모든 클래스 타입 멤버의 소멸자를 호출합니다. 복사 생성자 : 객체의 모든 멤버를 복사 생성자의 인수로부터 해당 멤버의 복사 생성자를 호출하여 생성하며, 비-클래스 타입 (예: int나 포인터와 같은)의 데이터 멤버에는 평범한 대입을 수행합니다. 복사 대입 연산자 : 객체의 모든 ..
문제 링크 https://www.acmicpc.net/problem/21608 ◆문제 해설 및 설명◆ 문제 : 요약 불가... 쉽게 말해서 모든 칸의 상하좌우를 검색했을때, 1순위로 좋아하는 학생이 많은곳에 배치, 2순위로 빈칸이 많은곳에, 3순위로는 행의 번호가 작고 4순위로는 열의 번호가 작은 순 에 학생을 배치하면 된다. 구현문제이기 때문에 코드에서 설명을 이어가겠다. ◆코드 전문◆ #include using namespace std; int map[20][20]; int favor[401][5]; int N, squareN, answer = 0; int dy[4]{1, -1, 0, 0}; int dx[4]{0, 0, 1, -1}; int main() { cin >> N; squareN = N * ..
문제 링크 https://www.acmicpc.net/problem/2030 ◆문제 해설 및 설명◆ 문제 : 정수의 곱셈과 나눗셈으로만 이뤄진 임의의 수식을 받아, 그 결과가 정수이면 “민트 초코”를, 정수가 아닌 유리수이면 “치약”을 출력하여라. 처음 든 생각은 나누기 연산을 소숫점 버림을 해야 하는지, 현실처럼 분수로 작성해야하는 지였다. 예제 2를 보니 현실처럼 분수로 작성해함을 알 수 있었다. ( 소숫점 버림시, 2 / 3 = 0, 이후 0이므로 정답은 mint chocolate) 이를 일단 무식하게 *끼리 /끼리 연산후 마지막에 연산해주었더니, 아니나 다를까 런타임 에러 (IntegerOverflow)가 나왔다. 따라서 오버플로우가 나지 않게 만들어주기 위해 분자와 분모를 처리를 해주어야 하는데..
서론 아직까진 30분 안에 풀고 있으니 할만한데라고 생각하니, 이게 웬걸 상당히 오래 걸리는 문제를 2주차 막바지에 만나버렸다. 문제 이해를 못한것도 충격이었고, 중간에 발생한 문제도 문자열에 관한 기본적인 문제여서 발전이 필요하구나 라는 생각을 들게 하였다. 5일차 GameJam 문제 요약 : 맵의 각 위치에는 이동해야 되는 명령어가 있고 이를 따라 이동하되, 한번 방문한 곳을 다시 갔을경우 종료된다. 플레이어와 구름이 게임을 하며 점수는 각각 방문한 위치의 수이다. 이긴 사람의 이름과 점수를 출력하시오. 어려웠던 점 ●문제해석 문제를 읽다가 입력부분에 이해가 되지 않는 부분이 있었다. 'i번째 줄에서 j번째로 주어지는 지시 사항은 보드의 r번째 행, c번째 열의 정보를 의미한다'? 나는 command..