[백준 16935번] 파이썬 - 배열 돌리기3
백준 16935 - 배열 돌리기3 시간 제한 2초, 메모리 제한 512MB # 조건 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → 7 4 6 2 3 1 7 4 6 2 3 1 → 1 8 3 4 2 9 9 2 3 6 1 5 → 7 2 6 9 8 2 4 2 9 3 1 8 → 1 6 2 9 8 4 2번 연산은 배열을 좌우 반전시키는 연산이다. 1 6 2 9 8 4 → 4 8 9 2 6 1 7 2 6 9 8 2 → 2 8 9 6 2 7 1 8 3 4 2 9 → 9 2 4 3 8 1 7 4 6 2 3 ..
2023.12.01
[백준 1527번] 금민수의 개수
백준 1527 - 금민수의 개수 시간 제한 2초, 메모리 제한 128MB # 조건 은민이는 4와 7을 좋아하고, 나머지 숫자는 싫어한다. 금민수는 어떤 수가 4와 7로만 이루어진 수를 말한다. A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 자연수 중에 금민수인 것의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 A보다 크거나 같고, B보다 작거나 같은 자연수 중에 금민수인 것의 개수를 출력한다. # 접근 방법 최대 범위가 10억이기 때문에 하나하나 확인할 수는 없다. 따라서, 중복..
2023.12.01
[C++] 동적 메모리 할당 및 반환
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 일반적으로 개발자는 프로그램 작성 단계에서 필요한 메모리를 확보하기 위해 변수, 객체, 배열을 정적으로 선언한다. 하지만, 사용자의 마음에 따라 달라지는 문서 편집기 등은 필요한 메모리를 프로그램 작성 단계에서 모두 선언하는 것은 불가능하다. 따라서, 이런 유형의 응용PR을 위해, 실행 중에 필요한 만큼 메모리를 할당받고 필요 없을 때 반환하는 '동적 메모리 할당/반환 메커니즘'..
2023.11.30
no image
[C++] 객체 포인터와 객체 배열
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 객체 포인터 C++에서 객체를 다루기 위해 객체에 대한 포인터 변수를 선언하고, 이 포인터 변수로 객체의 멤버 변수를 읽고 값을 쓰거나 멤버 함수를 호출한다. Circle donut; double d = donut.getArea(); Circle* p; // 객체에 대한 포인터 변수 선언 p = &donut; // 포인터 변수에 객체 주소 지정 Circle* p = &donut ..
2023.11.30
no image
[C++] 포인터
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 포인터 C/C++ 언어에서 포인터(pointer)는 실행 중 메모리의 주소 값이다. 주소(포인터)를 이용하여 메모리에 직접 값을 쓰거나 메모리로부터 값을 읽어올 수 있다. 변수의 메모리 주소 변수란 프로그램 내에서 사용하는 이름 각 변수마다 메모리 공간이 할당 된다. int n; n = 3; 위 코드에서 n은 정수를 저장할 메모리 공간에 대한 이름 그러나 값 3이 메모리 몇 번지..
2023.11.30
[백준 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