본문 바로가기

728x90
SMALL

분류 전체보기

(444)
백준 1003번 [피보나치 함수](C++)-yes6686- 티스토리 백준 문제 풀이: 1003 [피보나치 함수]문제 링크: https://www.acmicpc.net/problem/1003문제 설명:피보나치 수열에서 \( F(0) = 0 \), \( F(1) = 1 \), \( F(n) = F(n-1) + F(n-2) \)로 정의됩니다. 이때 \( F(n) \)을 계산할 때 호출되는 0과 1의 개수를 구하는 문제입니다.문제 해결 코드#include using namespace std;long long int zeroCntDp[41];long long int oneCntDp[41];// 0이 호출된 횟수 계산long long int zeroCntFibo(int n) { if (zeroCntDp[n] != -1) return zeroCntDp[n]; if (n =..
백준 1557번 [제곱 ㄴㄴ](C++)-yes6686- 티스토리 백준 문제 풀이: 1557 [제곱 ㄴㄴ]문제 링크: https://www.acmicpc.net/problem/1557문제 설명:자연수 중에서 어떤 소수의 제곱으로 나누어 떨어지지 않는 수들을 제곱 ㄴㄴ 수라고 합니다. n번째 제곱 ㄴㄴ 수를 찾는 문제입니다.문제 해결 코드#include using namespace std;int arr[150001]; // 소수를 판별하기 위한 배열long long parr[150001]; // 소수의 제곱 저장 배열int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 에라토스테네스의 체를 사용하여 소수 판별 for (int i = 2; i 코드 설명핵심 ..
백준 1406번 [에디터](C++)-yes6686- 티스토리 백준 문제 풀이: 1406 [에디터]문제 링크: https://www.acmicpc.net/problem/1406문제 설명:초기 문자열에서 커서를 이동하거나 문자 삽입/삭제를 통해 최종 문자열을 만드는 문제입니다. 각 명령은 다음과 같습니다:'L': 커서를 왼쪽으로 이동 (문자열의 시작에선 무시)'D': 커서를 오른쪽으로 이동 (문자열의 끝에선 무시)'B': 커서 왼쪽의 문자 삭제 (문자열이 비어있으면 무시)'P x': 커서 왼쪽에 문자 x 삽입문제 해결 코드#include #include using namespace std;stack st1; // 왼쪽 커서stack st2; // 오른쪽 커서int main() { ios::sync_with_stdio(false); cin.tie(NULL);..
백준 12852번 [1로 만들기 2](C++)-yes6686- 티스토리 백준 문제 풀이: 12852 [1로 만들기 2]문제 링크: https://www.acmicpc.net/problem/12852문제 설명:정수 N이 주어졌을 때, 다음 연산 중 하나를 반복해서 1로 만들려고 합니다:N이 3으로 나누어 떨어지면, N을 3으로 나눕니다.N이 2로 나누어 떨어지면, N을 2로 나눕니다.1을 뺍니다.이때, 연산을 사용하는 횟수를 최소화하고, 최소 횟수로 만들 수 있는 과정도 출력합니다.문제 해결 코드#include #include using namespace std;int dp[1000001];string s[1000001];int main() { int n; cin >> n; s[1] = "1"; // 초기 값 설정 for (int i = 2; i 코드 설..
백준 14941번 [호기심](C++)-yes6686- 티스토리 백준 문제 풀이: 14941 [호기심]문제 링크: https://www.acmicpc.net/problem/14941문제 설명:주어진 범위 [a, b]에서 소수의 합과 소수의 특성에 따라 계산된 값을 출력하는 문제입니다. 소수의 특성은 번갈아 가며 첫 번째 소수는 3배를 더하고, 두 번째 소수는 빼는 방식으로 구성됩니다.문제 해결 코드#include using namespace std;int arr[100001]; // 소수 여부 체크 배열int sum1[100001]; // 패턴 1 누적 합int sum2[100001]; // 패턴 2 누적 합int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> ..
백준 9213번 [꽤 좋은 수](C++)-yes6686- 티스토리 백준 문제 풀이: 9213 [꽤 좋은 수]문제 링크: https://www.acmicpc.net/problem/9213문제 설명:자연수 (n)에 대해 약수의 합 (sigma(n))를 계산했을 때, (|sigma(n) - n|)이 주어진 badness 이하인 수를 "꽤 좋은 수"로 정의합니다. 주어진 구간 [s, e]에서 꽤 좋은 수의 개수를 구하는 문제입니다.문제 해결 코드#include using namespace std;int arr[1000001]; // 약수의 합 저장 배열int main() { ios::sync_with_stdio(false); cin.tie(NULL); // 약수의 합 계산 for (int i = 1; i > s >> e >> badness; ..
백준 1153번 [네 개의 소수](C++)-yes6686- 티스토리 백준 문제 풀이: 1153 [네 개의 소수]문제 링크: https://www.acmicpc.net/problem/1153문제 설명:자연수 n이 주어졌을 때, n을 네 개의 소수의 합으로 표현할 수 있는지 판단하고, 가능하다면 네 개의 소수를 출력하는 문제입니다. 여러 정답이 있을 경우 그중 하나만 출력하며, 불가능한 경우 -1을 출력합니다.문제 해결 코드#include using namespace std;int arr[1000001];int p[1000001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; cin >> n; // 에라토스테네스의 체를 이용하여 소수 판별 for (int i = 1; i 코드..
백준 1016번 [제곱 ㄴㄴ 수](C++)-yes6686- 티스토리 백준 문제 풀이: 1016 [제곱 ㄴㄴ 수]문제 링크: https://www.acmicpc.net/problem/1016문제 설명:두 정수 n과 m이 주어질 때, n 이상 m 이하의 정수 중 제곱 ㄴㄴ 수(어떤 소수의 제곱으로 나눠지지 않는 수)의 개수를 구하는 문제입니다.문제 해결 코드#include using namespace std;long long int arr[1000001];int main() { ios::sync_with_stdio(false); cin.tie(NULL); long long int n, m; cin >> n >> m; for (long long int i = 2; i * i 코드 설명핵심 알고리즘: 소수의 제곱들을 이용해 범위 내 숫자..

728x90
LIST