다른 사람들이 관심있어한 포스트
-
[C++] Boj
[C++] 백준 17420: 깊콘이 넘쳐흘러
문제 이해- 기프티콘이 N개 있으며 사용 가능 기한이 존재한다.- 기한은 연장이 가능한데 한 번 연장하면 30일이 늘어난다.- 기한 연장은 최소한으로 하려 한다.- 기프티콘 중 기한이 가장 적게 남은 기프티콘만 사용 가능하다.- 기한이 같은 게 여러 개면 아무거나 사용할 수 있다.- 하루에 여러 개를 사용하거나 연장하는 것 모두 가능하다. - 시간 제한: 1초- 메모리 제한: 512MB - N: 기프티콘의 수 (1 ~ 100,000, 10^5)- Ai: 기프티콘의 남은 기한(1 ~ 1,000,000,000, 10^9)- Bi: i번째 기프티콘의 경우 Bi일 뒤에 사용할 계획이다.(1 ~ 1,000,000,000, 10^9) - 기한 연장을 해야 하는 최소 횟수를 출력하라.※ 32비트 정수를 넘을 수 있다..
-
Java
[Java][Collections Framework 완전 정복] Stack 클래스를 사용하지 않는 이유 및 대안
개요프로그래머스에서 스택 관련 문제를 풀다가 익명의 분께서 Java의 Stack 클래스는 사용을 지양하는 게 좋다는 글을 읽었다.Stack 자료구조는 매우 유명한 자료구조이고, 그걸 구현한 Stack 클래스를 사용하지 말라니? 의문점이 들어 Stack 클래스에 대해 자세히 조사하게 되었다. Stack 자료구조에 대해서 스택(Stack) 자료구조는 LIFO(Last In First Out)의 자료구조이다.이 말의 의미는 가장 나중에 삽입(push)된 데이터가 가장 먼저 삭제(pop)된다는 뜻이다. 또한 Stack 자료구조는 정해진 방향으로만 데이터를 쌓을 수 있으며,맨 위의 데이터(top)에 대해서만 접근이 가능해야 한다. Java의 Stack 클래스의 문제점Java의 Stack 클래스는 Vecto..
-
C++
[C++] 우선순위 큐(PRIORITY_QUEUE) & 페어(PAIR) 사용법
개요우선순위 큐는 컨테이너 안의 자료들을 내림차순 혹은 오름차순으로 정렬해주는 자료형이다. 그런데 pair와 같이 자료가 두 개 이상이 되면 어떻게 될까?? 간략하게 알아보도록 하자. 1. 기본 사용법(내림차순)첫 번째 인자를 기준으로 내림차순으로 정렬된다.첫 번째 인자가 같다면 두 번째 인자를 기준으로 내림차순 정렬된다.#include #include #include using namespace std;int main(void) { ios_base::sync_with_stdio(false); cin.tie(nullptr); priority_queue> pq; pq.push({1, 1}); pq.push({1, 2}); pq.push({2, 3}); pq.push..
-
C++
[C++] memset 함수(메모리 초기화)
함수 이해C언어와 C++에서 쓰이는 memset 함수는 메모리의 내용(값)을 원하는 크기만큼 특정 값으로 세팅할 수 있는 함수 입니다. 주로 0으로 배열의 값들을 초기화할 때 자주 사용하는 함수입니다. 함수 원형void* memset(void* ptr, int value, size_t num); 1. 반환값: 정상적인 값이 들어온다면 첫 번째 인자로 들어온 ptr 포인터를 반환하지만,실패한다면 NULL을 반환합니다. 2. 첫 번째 인자(void* ptr): 바꾸고자 하는 메모리의 시작 주소가 들어가는 자리입니다.즉, 그 주소를 가리키고 있는 포인터가 위치하는 자리입니다. 흔히 사용하는 방법으로 배열을 초기화한다면 배열의 이름(배열의 시작 주소)이 들어갑니다.Ex)int Rank[500];memse..
-
Algorithm
[C++] 구조체(STRUCT)
핵심요약 클래스와 유사하게 사용이 가능하다. 하나 이상의 변수를 그룹 지어서 새로운 자료형을 정의하는 것. 코드의 가독성을 높일 수 있다. 선언 및 정의(예제) struct Student //정의 { short id; int age; double score; }; Student minsu; //선언 위 코드는 컴파일러에 Student 구조체를 정의한다고 말한다. 일반적으로 구조체 이름은 대문자로 시작하여 변수 이름과 구분한다. Student 구조체는 세 개의 변수(short id, int age, double score)를 포함한다. 구조체의 일부인 이러한 변수를 멤버(member) 또는 필드(field)라고 한다. Student 는 단지 구조체 자료형에 불과하다. 컴파일러에 구조체에 멤버 변수가 있을 ..