[백준 1699번] 파이썬 - 제곱수의 합
백준 1699번 시간 제한 2초, 메모리 제한 128MB # 조건 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다. 이 경우, 수학자 숌크라테스는 “11은 3개 항의 제곱수 합으로 표현할 수 있다.”라고 말한다. 또한 11은 그보다 적은 항의 제곱수 합으로 표현할 수 없으므로, 11을 그 합으로써 표현할 수 있는 제곱수 항의 최소 개수는 3이다. 주어진 자연수 N을 이렇게 제곱수들의 합으로 표현할 때에 그 항의 최소개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N이 주어진다. (1 i: break if dp[..
2023.11.30
[백준 2343번] 파이썬 - 기타 레슨
백준 2343 - 기타 레슨 시간 제한 2초, 메모리 제한 128MB # 조건 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경우에는 강의의 흐름이 끊겨, 학생들이 대혼란에 빠질 수 있기 때문이다. 즉, i번 강의와 j번 강의를 같은 블루레이에 녹화하려면 i와 j 사이의 모든 강의도 같은 블루레이에 녹화해야 한다. 강토는 이 블루레이가 얼마나 팔릴지 아직 알 수 없기 때문에, 블루레이의 개수를 가급적 줄이려고 한다. 오랜 고민 끝에 강토는 M개의 블루레이에 모든 기타 강의 동영상을 녹화하기로 했다. 이때, 블루레이의 크기(녹화 가능한 길이)를 최소로 하려고 한다. 단,..
2023.11.29
no image
[C++] 구조체
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 구조체 선언 C언어와의 호환성을 위해 구조체(struct) 지원 C++ 구조체는 표준 C 구조체에 기능 확장 => 클래스와 동일한 구조와 기능 struct 키워드로 선언, 멤버 변수와 함수 가지고 접근 지정도 해야 함 struct structName { // 디폴트 접근 지정은 public. public 속성의 멤버 변수나 멤버 함수 선언 private: // private 속성..
2023.11.29
no image
[C++] priority queue with Cpp
정의 우선순위 큐(priority queue)는 각 요소에 어떠한 우선순위가 추가로 부여되어 있는 컨테이너 container를 max heap으로 유지 특징 우선순위가 높은 요소는 우선순위가 낮은 요소보다 먼저 제공 일부 구현에서 두 요소의 우선 순위가 같으면 대기열에 포함된 순서에 따라 제공된다. 다른 구현에서 동일한 우선 순위를 가진 요소의 순서는 정의되지 않은 상태로 유지 데이터가 완벽히 정렬된 상태는 아니지만 최댓값은 빠르게 찾을 수 있음 연속적으로 데이터의 최댓값 또는 최솟값만 필요 시 상수가 큰 std::set 보다 훨신 효율적 동작 시간복잡도 힙 기반으로 -> 완전 이진 트리로 최소힙 또는 최대힙이 있다. 삽입, 삭제, 탐색, 수정에 대해 O(logN) int형 우선순위큐 greater를 써..
2023.11.29
no image
[C++] 접근 지정자와 인라인 함수
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 접근 지정자 OOP Language는 객체를 캡슐화하고, 외부에서 접근 가능한 공개 멤버와 외부의 접근을 허용하지 않는 비공개 멤버를 구분 아래와 같은 3가지 멤버 접근 지정자(access specifier)가 있다. private(비공개) 클래스 내의 멤버 함수들에게만 접근이 허용 public(공개) 클래스 내외를 막론하고 프로그램의 모든 함수들에게 허용 protected(보호..
2023.11.29
no image
[C++] 소멸자
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 소멸자 객체가 소멸되면 객체 메모리는 시스템으로 반환 소멸자(destructor)는 객체가 소멸되는 시점에서 자동으로 호출되는 클래스의 멤버 함수 class Circle{ Circle(); Circle(int r); // ..... ~Circle(); }; Circle::~Circle() { ..... } 특징 소멸자의 목적은 객체가 사라질 때 필요한 마무리 작업을 위함이다. 동..
2023.11.29
[백준 16973번] 파이썬 - 직사각형 탈출
백준 16973 - 직사각형 탈출 시간 제한 2초, 메모리 제한 512MB # 조건 크기가 N×M인 격자판에 크기가 H×W인 직사각형이 놓여 있다. 격자판은 크기가 1×1인 칸으로 나누어져 있다. 격자판의 가장 왼쪽 위 칸은 (1, 1), 가장 오른쪽 아래 칸은 (N, M)이다. 직사각형의 가장 왼쪽 위칸은 (Sr, Sc)에 있을 때, 이 직사각형의 가장 왼쪽 위칸을 (Fr, Fc)로 이동시키기 위한 최소 이동 횟수를 구해보자. 격자판의 각 칸에는 빈 칸 또는 벽이 있다. 직사각형은 벽이 있는 칸에 있을 수 없다. 또한, 직사각형은 격자판을 벗어날 수 없다. 직사각형은 한 번에 왼쪽, 오른쪽, 위, 아래 중 한 방향으로 한 칸 이동시킬 수 있다. 입력 첫째 줄에 격자판의 크기 N, M이 주어진다. 둘째 ..
2023.11.29
no image
[C++] 생성자
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com # 생성자 C++에서 객체를 생성할 때는 객체를 초기화할 수 있다. 클래스에서는 객체가 생성될 때 자동으로 실행되는 생성자(constructor)라는 특별한 멤버 함수를 이용하여 객체를 초기화한다. 특징 생성자의 목적은 객체가 생성될 때 필요한 초기 작업을 위함이다. ex) 멤버 변수의 값을 특정 값으로 설정(변수 초기화)하거나, 메모리를 동적으로 할당 받기 등 객체를 사용하기 ..
2023.11.27
no image
[C++] 클래스와 객체
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 객체란 우리 주변에 존재하는 모든 것이며 아래와 같은 특징이 있다. 객체는 캡슐화된다. 캡슐화는 객체의 구성 요소들을 캡슐로 싸서 보호하고 볼 수 없게 하는 것으로, 객체의 가장 본질적인 특징이다. 다시 말해 객체는 캡슐화를 통해 외부의 접근을 통제하여 자신의 내부 요소들을 보호한다. 객체의 일부 요소는 공개된다. 구성 객체들이 상호 통신을 하면서 시스템이 구동된다. 그러므로 객..
2023.11.27