BAEKJOON/자료 구조 (60) 썸네일형 리스트형 백준 9012번 [괄호](C++)-yes6686- 티스토리 백준 문제 풀이: 9012 [괄호]문제 링크: https://www.acmicpc.net/problem/9012문제 설명:주어진 문자열이 올바른 괄호 문자열(Valid Parenthesis String, VPS)인지 판단하는 문제입니다. 문자열은 '('와 ')'로만 구성되며, 다음 조건을 만족해야 올바른 괄호 문자열로 간주됩니다:왼쪽 괄호 '('의 개수와 오른쪽 괄호 ')'의 개수가 같아야 합니다.왼쪽 괄호가 오른쪽 괄호보다 먼저 등장해야 합니다.문제 해결 코드#include using namespace std;int main() { int T; cin >> T; string s; int cnt = 0; while (T--) { cin >> s; for.. 백준 4949번 [균형잡힌 세상](C++)-yes6686- 티스토리 백준 문제 풀이: 4949 [균형잡힌 세상]문제 링크: https://www.acmicpc.net/problem/4949문제 설명:주어진 문자열이 균형잡힌 괄호 문자열인지 판단하는 문제입니다. 균형잡힌 문자열은 다음 조건을 만족해야 합니다:모든 여는 괄호 '(' 또는 '['가 적절한 닫는 괄호 ')' 또는 ']'와 매칭되어야 한다.괄호가 중첩되는 경우, 올바른 순서로 닫혀야 한다.문자열의 끝은 항상 마침표('.')로 표시되며, 입력이 '.' 하나만 있을 경우 프로그램을 종료합니다.문제 해결 코드#include #include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); w.. 백준 2164번 [카드2](C++)-yes6686- 티스토리 백준 문제 풀이: 2164 [카드2]문제 링크: https://www.acmicpc.net/problem/2164문제 설명:1부터 N까지의 번호가 적힌 카드가 있다. 카드 뭉치의 맨 위에 있는 카드를 버린 뒤, 그다음 맨 위에 있는 카드를 카드 뭉치의 맨 아래로 옮기는 과정을 반복한다. 카드가 한 장 남을 때까지 이 과정을 계속했을 때 남는 카드 번호를 구하는 문제입니다.문제 해결 코드#include #include using namespace std;int main() { int n; cin >> n; queue q; // 카드 초기화 for (int i = 1; i 1) { q.pop(); // 맨 위 카드 버리기 q.push(q.front());.. 백준 14428번 [수열과 쿼리 16](C++)-yes6686- 티스토리 백준 문제 풀이: 14428 [수열과 쿼리 16]문제 링크: https://www.acmicpc.net/problem/14428문제 설명:수열이 주어질 때, 다음과 같은 두 가지 쿼리를 처리하는 프로그램을 작성합니다:1 x y: 수열의 x번째 원소를 y로 변경합니다.2 x y: 수열의 x번째 원소부터 y번째 원소까지 중 가장 작은 값의 인덱스를 출력합니다. (1부터 시작하는 인덱스 기준)만약 최소값이 여러 개인 경우, 인덱스가 가장 작은 값을 출력합니다.문제 해결 코드#include #include using namespace std;long long int arr[1000001];struct Seg { int idx; int mi;};Seg seg[400001];Seg go(int n, in.. 백준 11505번 [구간 곱 구하기](C++)-yes6686- 티스토리 백준 문제 풀이: 11505 [구간 곱 구하기]문제 링크: https://www.acmicpc.net/problem/11505문제 설명:주어진 수열에서 다음 두 가지 작업을 처리하는 프로그램을 작성합니다:1 x y: 수열의 x번째 원소를 y로 변경합니다.2 x y: 수열의 x번째 원소부터 y번째 원소까지의 곱을 구한 후, 1,000,000,007로 나눈 나머지를 출력합니다.문제 해결 코드#include #include using namespace std;long long int arr[1000001];long long int seg[4000001];long long int go(int n, int s, int e) { if (s == e) { return seg[n] = arr[s]; .. 백준 10868번 [최솟값](C++)-yes6686- 티스토리 백준 문제 풀이: 10868 [최솟값]문제 링크: https://www.acmicpc.net/problem/10868문제 설명:주어진 수열에서 특정 구간의 최솟값을 빠르게 구하는 문제입니다. n개의 수가 주어지고, m개의 구간에 대한 최솟값을 각각 출력해야 합니다.문제 해결 코드#include #include using namespace std;int arr[100001];struct Seg { int ma; int mi;};Seg seg[400001];Seg go(int n, int s, int e) { if (s == e) { seg[n].ma = arr[s]; seg[n].mi = arr[s]; return seg[n]; } else { .. 백준 2357번 [최솟값과 최댓값](C++)-yes6686- 티스토리 백준 문제 풀이: 2357 [최솟값과 최댓값]문제 링크: https://www.acmicpc.net/problem/2357문제 설명:주어진 n개의 정수 배열에서 m개의 구간에 대한 최솟값과 최댓값을 빠르게 구하는 문제입니다.문제 해결 코드#include #include using namespace std;int arr[100001];struct Seg { int ma; int mi;};Seg seg[400001];Seg go(int n, int s, int e) { if (s == e) { seg[n].ma = arr[s]; seg[n].mi = arr[s]; return seg[n]; } else { int mid = (s + e).. 백준 2042번 [구간 합 구하기](C++)-yes6686- 티스토리 백준 문제 풀이: 2042 [구간 합 구하기]문제 링크: https://www.acmicpc.net/problem/2042문제 설명:길이가 n인 수열이 주어졌을 때, 다음 두 가지 연산을 효율적으로 처리해야 합니다:구간 합 계산: 수열의 특정 구간에 속하는 원소들의 합을 구합니다.값 변경: 수열의 특정 원소 값을 변경합니다.문제 해결 코드#include #include using namespace std;long long int arr[1000001];long long int seg[4000001];long long int go(int n, int s, int e) { if (s == e) { return seg[n] = arr[s]; } else { int mid =.. 이전 1 ··· 4 5 6 7 8 다음