본문 바로가기

728x90
SMALL

BAEKJOON/자료 구조

(58)
백준 2075번 [N번째 큰 수](C++) -yes6686- 티스토리 백준 문제 풀이: 2075 [N번째 큰 수]문제 링크: https://www.acmicpc.net/problem/2075문제 설명:N×N 크기의 행렬이 주어졌을 때, 이 행렬에서 N번째로 큰 수를 찾는 문제입니다.가장 큰 값을 우선적으로 관리하는 우선순위 큐를 활용하여 해결할 수 있습니다.문제 해결 코드#include #include using namespace std;int arr[1501][1501]; // 행렬 저장 배열priority_queue>> pq; // 최대 힙int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 행렬 크기 입력 for (int i = 0; i > arr[i][j]..
백준 22233번 [가희와 키워드](C++) -yes6686- 티스토리 백준 문제 풀이: 22233 [가희와 키워드]문제 링크: https://www.acmicpc.net/problem/22233문제 설명:초기에 n개의 키워드가 주어지고, 이후 m개의 블로그 글이 입력됩니다. 각 블로그 글에는 쉼표(,)로 구분된 키워드가 포함되며, 등장한 키워드는 삭제됩니다.각 블로그 글이 처리된 후 남은 키워드의 개수를 출력하는 문제입니다.문제 해결 코드#include #include using namespace std;unordered_map mp; // 키워드를 저장할 해시 맵int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n, m; cin >> n >> m; // 키워드 개수 n, 블로그 글 개수 m ..
백준 11861번 [Maximal Area](C++) -yes6686- 티스토리 백준 문제 풀이: 11861 [가장 큰 직사각형]문제 링크: https://www.acmicpc.net/problem/11861문제 설명:주어진 히스토그램에서 가장 큰 직사각형의 넓이를 구하는 문제입니다. 연속된 높이를 유지하면서 만들 수 있는 가장 넓은 직사각형을 찾아야 합니다.문제 해결 코드#include #include using namespace std;long long int arr[1000001]; // 히스토그램 높이 배열stack> st; // (높이, 시작 인덱스) 저장int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 히스토그램 막대 개수 입력 for (int i = 0; i..
백준 1989번 [부분배열 고르기 2](C++) -yes6686- 티스토리 백준 문제 풀이: 1989 [부분배열 문제]문제 링크: https://www.acmicpc.net/problem/1989문제 설명:배열에서 연속된 부분 배열을 선택할 때, 선택된 부분 배열의 최소값 × 원소 합의 최댓값을 구하는 문제입니다.또한, 해당 최대 값을 갖는 부분 배열의 시작 위치와 끝 위치를 출력해야 합니다.문제 해결 코드#include #include using namespace std;long long int arr[100001]; // 입력 배열stack> st; // (최소값, 시작 인덱스) 저장int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 배열 크기 입력 for (in..
백준 14727번 [퍼즐 자르기](C++) -yes6686- 티스토리 백준 문제 풀이: 14727 [퍼즐 자르기]문제 링크: https://www.acmicpc.net/problem/14727문제 설명:주어진 히스토그램에서 가장 큰 직사각형의 넓이를 구하는 문제입니다.즉, 연속된 높이를 유지하면서 만들 수 있는 가장 넓은 직사각형을 찾는 문제입니다.문제 해결 코드#include #include using namespace std;long long int arr[100001]; // 히스토그램 높이 배열stack> st; // (높이, 시작 인덱스) 저장int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 히스토그램 막대 개수 입력 for (int i = 0; i ..
백준 2104번 [부분배열 고르기](C++) -yes6686- 티스토리 백준 문제 풀이: 2104 [부분배열 고르기]문제 링크: https://www.acmicpc.net/problem/2104문제 설명:배열에서 연속된 부분 배열을 선택할 때, 선택된 부분 배열의 최소값 × 원소 합의 최댓값을 구하는 문제입니다.이 문제는 스택을 활용한 히스토그램 문제와 유사하며, 특정 구간에서의 최소값을 빠르게 찾는 방식으로 해결할 수 있습니다.문제 해결 코드#include #include using namespace std;long long int arr[100001]; // 입력 배열stack> st; // (최소값, 시작 인덱스) 저장int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n;..
백준 12846번 [무서운 아르바이트](C++) -yes6686- 티스토리 백준 문제 풀이: 12846 [무서운 아르바이트]문제 링크: https://www.acmicpc.net/problem/12846문제 설명:주어진 배열에서 연속된 구간을 선택할 때, 구간 내 최저 급여 × 구간 길이의 값이 최대가 되는 값을 찾는 문제입니다.즉, 주어진 급여 배열에서 히스토그램의 최대 직사각형 넓이를 찾는 문제와 유사합니다.문제 해결 코드#include #include using namespace std;long long int arr[100001]; // 급여 배열stack> st; // (급여, 시작 인덱스) 저장int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 일하는 날 수 입..
백준 8017번 [Parcel](C++) -yes6686- 티스토리 백준 문제 풀이: 8017 [Zero Rectangle]문제 링크: https://www.acmicpc.net/problem/8017문제 설명:주어진 n × n 크기의 행렬에서 0으로만 이루어진 가장 큰 직사각형의 넓이를 구하는 문제입니다.문제 해결 코드#include #include using namespace std;int arrR[2001][2001]; // 각 열에서 연속된 0의 개수를 저장int arr[2001][2001]; // 원본 행렬stack> st; // 스택을 사용한 히스토그램 방식int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 입력 및 초기화 for (int i ..

728x90
LIST