no image
[C++] 복사 생성자
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 얕은 복사와 깊은 복사 복사에는 얕은 복사(shallow copy)와 깊은 복사(deep copy)로 구분할 수 있다. 아래 그림을 통해 예시를 살펴보자. 얕은 복사의 경우 어린이만 복사하기에, 복사 후 서로 자기 것이라고 주장하는 충돌이 발생한다. 반면, 깊은 복사는 원본이 소유한 모든 것까지 복사하기에 충돌은 발생하지 않는다. 얕은 복사 객체 복사 시, 객체의 멤버를 1:1로..
2023.12.04
[C++] 참조에 의한 호출, call by reference
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 참조에 의한 호출, call by reference 이전 게시물에서 참조&에 대해 알아보았는데 원본 변수와 참조 변수를 함께 사용하면 변수 사용이 혼란스러워지는 것은 사실이다. 참조는 C++의 새로운 인자 전달 방식인 '참조에 의한 호출'에 많이 사용된다. 함수의 매개 변수를 참조 타입으로 선언, 매개 변수가 함수를 호출 하는 쪽의 실인자를 참조(reference)하여 실인자와 ..
2023.12.04
[C++] 함수와 참조
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 함수의 인자 전달 방식 값에 의한 호출(call by value) 값에 의한 호출은 호출하는 코드에서 넘겨주는 실인자 값이 함수의 매개 변수에 복사되어 전달되는 방식 주소에 의한 호출(call by address) 주소를 직접 포인터 타입의 매개 변수에 전달받는 방법 아래와 같이 매개 변수로 복사한 경우 변경되지 않지만, 포인터 매개 변수로 전달 시 main 스택의 m, n이 교..
2023.12.03
[백준 15489번] 파이썬 - 파스칼 삼각형
백준 15489 - 파스칼 삼각형 시간 제한 1초, 메모리 제한 512MB # 조건 파스칼 삼각형은 아래와 같은 모양으로 이루어져 있다. 양 끝을 제외한 각 수는 자신의 바로 왼쪽 위의 수와 바로 오른쪽 위의 수의 합으로 되어있다. 이때 R번째 줄, C번째 수를 위 꼭짓점으로 하는 한 변이 포함하는 수의 개수가 W인 정삼각형과 그 내부를 생각하자. 정삼각형의 변과 그 내부에 있는 수들의 합을 구하고 싶다. 예를 들면, 3번 째 줄, 1번 째 수를 꼭짓점으로 하고 한 변이 포함하는 수의 개수가 4인 정삼각형과 그 내부에 있는 수의 합은 1+(1+3)+(1+4+6)+(1+5+10+10) = 42 이다. 주어진 R, C, W에 대해서 그에 해당하는 합을 구하는 프로그램을 작성하여라. 입력 첫째 줄에 양의 정수..
2023.12.03
[백준 1339번] 파이썬 - 단어 수학
백준 1339 - 단어 수학 시간 제한 2초, 메모리 제한 256MB # 조건 민식이는 수학학원에서 단어 수학 문제를 푸는 숙제를 받았다. 단어 수학 문제는 N개의 단어로 이루어져 있으며, 각 단어는 알파벳 대문자로만 이루어져 있다. 이때, 각 알파벳 대문자를 0부터 9까지의 숫자 중 하나로 바꿔서 N개의 수를 합하는 문제이다. 같은 알파벳은 같은 숫자로 바꿔야 하며, 두 개 이상의 알파벳이 같은 숫자로 바뀌어지면 안 된다. 예를 들어, GCF + ACDEB를 계산한다고 할 때, A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다면, 두 수의 합은 99437이 되어서 최대가 될 것이다. N개의 단어가 주어졌을 때, 그 수의 합을 최대로 만드는 프로그램을 작성하..
2023.12.02
[백준 9081번] 파이썬 - 단어 맞추기
백준 9081 - 단어 맞추기 시간 제한 1초, 메모리 제한 128MB # 조건 BEER라는 단어를 이루는 알파벳들로 만들 수 있는 단어들을 사전 순으로 정렬하게 되면 아래와 같이 된다. BEER BERE BREE EBER EBRE EEBR EERB ERBE EREB RBEE REBE REEB 이러한 순서에서 BEER 다음에 오는 단어는 BERE가 된다. 이와 같이 단어를 주면 그 단어를 이루는 알파벳들로 만들 수 있는 단어들을 사전 순으로 정렬할 때에 주어진 단어 다음에 나오는 단어를 찾는 프로그램을 작성하시오. 입력 입력의 첫 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 하나의 단어가 한 줄로 주어진다. 단어는 알파벳 A~Z 대문자로만 이루어지며 항상 공백이..
2023.12.02
no image
[C++] string 클래스를 이용한 문자열 사용
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com string 클래스 개요 C-스트링은 C언어에서 사용해오던 전통적인 문자열, '\0'로 끝나는 문자 배열을 문자열로 취급하는 방법 string은 C++ 표준 라이브러리에서 제공하는 클래스, 문자열을 객체로 다룬다. string은 문자열을 저장하는 버퍼와 함께, 문자열을 다루는 다양하고 유용한 함수와 연산자들을 멤버로 가지고 있다. #include using namespace st..
2023.12.01
[C++] this 포인터
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com this this는 객체 자신에 대한 포인터로서 클래스 멤버 함수 내에서만 사용. 전역 변수, 지역 변수 둘 다 아니다. 정확히 말하면 객체의 멤버 함수가 호출될 떄, 컴파일러에 의해 보이지 않게 전달되는 객체에 대한 주소 class Circle { int radius; public: Circle() { this->radius = 1; } Circle(int radius) { t..
2023.12.01
[백준 12931번] 파이썬- 두 배 더하기
백준 12931 - 두 배 더하기 시간 제한 2초, 메모리 제한 512MB # 조건 모든 값이 0으로 채워져 있는 길이가 N인 배열 A가 있다. 영선이는 다음과 같은 두 연산을 수행할 수 있다. 배열에 있는 값 하나를 1 증가시킨다. 배열에 있는 모든 값을 두 배 시킨다. 배열 B가 주어졌을 떄, 배열 A를 B로 만들기 위한 연산의 최소 횟수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 배열의 크기 N이 주어진다.(1 1: arrB[i] //= 2 flag = True if flag: cnt += 1
2023.12.01