본문 바로가기

728x90
SMALL

분류 전체보기

(433)
백준 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 =..
백준 1074번 [Z](C++)-yes6686- 티스토리 백준 문제 풀이: 1074 [Z]문제 링크: https://www.acmicpc.net/problem/1074문제 설명:2^n x 2^n 크기의 2차원 배열을 Z 모양으로 탐색하며, 배열의 특정 위치 (r, c)에 몇 번째로 도달하는지를 출력합니다.문제 해결 코드#include #include using namespace std;int n, r, c;int cnt = 0;void Z(int x, int y, int s) { if (x == r && y == c) { cout = x && c >= y && r > n >> r >> c; Z(0, 0, pow(2, n));}코드 설명재귀적 분할: 2차원 배열을 4개의 사분면으로 나누어 재귀적으로 탐색합니다.탐색 조건:현재 사분면이 목표..
백준 1920번 [수 찾기](C++)-yes6686- 티스토리 백준 문제 풀이: 1920 [수 찾기]문제 링크: https://www.acmicpc.net/problem/1920문제 설명:정수 N개로 이루어진 배열 A에서 특정 정수들이 존재하는지 확인하는 문제입니다. 각각의 정수에 대해 존재 여부를 1 또는 0으로 출력합니다.문제 해결 코드#include #include using namespace std;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); map m; int n; cin >> n; string x; for (int i = 0; i > x; m.insert(pair(x, 1)); } int k; cin >> k; for ..
백준 1874번 [스택 수열](C++)-yes6686- 티스토리 백준 문제 풀이: 1874 [스택 수열]문제 링크: https://www.acmicpc.net/problem/1874문제 설명:1부터 n까지의 수를 스택을 이용해 주어진 수열로 출력할 수 있는지 확인하고, 가능하다면 수행 과정을 출력합니다. 불가능하면 NO를 출력합니다.문제 해결 코드#include #include #include using namespace std;int arr[100001];stack s;vector v;int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; for (int i = 0; i > arr[i]; } int k = 0; int j = 0; w..
백준 1676번 [팩토리얼 0의 개수](C++)-yes6686- 티스토리 백준 문제 풀이: 1676 [팩토리얼 0의 개수]문제 링크: https://www.acmicpc.net/problem/1676문제 설명:n! (n 팩토리얼)에서 끝에 붙는 0의 개수를 구하는 문제입니다. 0은 2와 5의 곱으로 만들어지므로, 팩토리얼의 소인수 분해에서 5의 개수를 세는 것이 핵심입니다.문제 해결 코드#include using namespace std;int main() { int n; int cnt = 0; cin >> n; for (int i = 5; i 코드 설명핵심 아이디어: 2와 5의 곱으로 0이 만들어지는데, 팩토리얼에서는 2가 항상 5보다 많으므로 5의 개수만 세면 됩니다.구현 세부사항:i = 5부터 시작하여, i를 5씩 곱해가며 n / i를 누적합으로 더..

728x90
LIST