다른 사람들이 관심있어한 포스트
-
[C++] Boj
[C++] 백준 3665: 최종 순위
문제 이해- 대회에 여러 팀이 참여했다.- 작년과 올해는 동일한 팀이 참여했으며, 작년의 전체 순위는 공개된다.- 올해는 전체 순위는 발표되지 않으며, 작년에 비해 상대 순위가 바뀐 팀만 발표된다. - n: 대회에 참가한 팀의 개수 (2 ~ 500, 10^2)- m: 상대적인 등수가 바뀐 쌍의 수(0 ~ 25,000, 10^4) 출력- 확실한 순위를 만들 수 없을경우: ? 출력- 일관성이 없는 잘못된 정보 : IMPOSSIBLE 출력- 확실한 전체 순위가 만들어질 경우: 1등 팀부터 차례대로 출력 문제 풀이작년에 비해 상대 순위가 바뀐 팀에 대해 알려주므로 순서쌍이 주어지는 것으로 볼 수 있다.즉, 위상 정렬을 사용하면 풀 수 있는 문제로 판단했다. 1. 선행 관계의 표현 하지만, 문제점이 있다.작..
-
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++] 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비트 정수를 넘을 수 있다..
-
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 는 단지 구조체 자료형에 불과하다. 컴파일러에 구조체에 멤버 변수가 있을 ..