본문 바로가기

728x90
SMALL

분류 전체보기

(459)
백준 1456번 [거의 소수](C++) -yes6686- 티스토리 백준 문제 풀이: 1456 (거의 소수)문제 링크: https://www.acmicpc.net/problem/1456문제 설명:주어진 범위 [a, b] 내에서 **"거의 소수"**의 개수를 구하는 문제입니다. - **거의 소수**: 소수의 거듭제곱 수로, 범위 내에 존재하는 값을 의미합니다. - 예를 들어, 2의 거듭제곱 4, 8, 16은 거의 소수입니다.문제 해결 코드#include using namespace std;int pr[10000001]; // 소수를 판별하기 위한 배열int main() { ios::sync_with_stdio(false); cin.tie(NULL); // 에라토스테네스의 체: 소수 구하기 for (int i = 2; i > a >> b; // 범위 입..
백준 5613번 [계산기 프로그램](C++) -yes6686- 티스토리 백준 문제 풀이: 5613 (계산기 프로그램)문제 링크: https://www.acmicpc.net/problem/5613문제 설명:간단한 계산기 프로그램을 구현하는 문제입니다. 입력으로 주어진 연산을 순서대로 수행하고, '=' 기호가 입력되면 결과를 출력합니다.연산: 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/)나눗셈은 정수 나눗셈이며, 소수점 이하를 버립니다.문제 해결 코드#include using namespace std;int main() { ios::sync_with_stdio(false); cin.tie(NULL); int a; // 첫 번째 숫자 입력 cin >> a; while (true) { char op; // 연산자 입력 cin ..
백준 17103번 [골드바흐 파티션](C++) -yes6686- 티스토리 백준 문제 풀이: 17103 (골드바흐 파티션)문제 링크: https://www.acmicpc.net/problem/17103문제 설명:짝수 x를 두 소수의 합으로 나타내는 경우의 수를 구하는 문제입니다. 이때, 두 소수의 합을 **골드바흐 파티션**이라 부르며, 두 소수의 순서는 고려하지 않습니다.문제 해결 코드#include using namespace std;int p[1000001]; // 소수 판별을 위한 배열int main() { ios::sync_with_stdio(false); cin.tie(NULL); // 에라토스테네스의 체를 이용한 소수 판별 for (int i = 2; i > T; // 테스트 케이스 수 입력 while (T--) { int x..
백준 2789번 [유학 금지](C++) -yes6686- 티스토리 백준 문제 풀이: 2789 (유학 금지)문제 링크: https://www.acmicpc.net/problem/2789문제 설명:입력된 문자열에서 특정 알파벳들을 제거해야 합니다. 제거해야 할 알파벳은 **"CAMBRIDGE"**에 포함된 문자들입니다. 남은 문자들을 순서대로 출력합니다.문제 해결 코드#include using namespace std;int main() { string s; cin >> s; // CAMBRIDGE에 포함된 문자는 출력하지 않음 for (int i = 0; i 코드 설명코드의 주요 로직과 사용된 알고리즘 설명:문자열 순회: 입력받은 문자열 s의 각 문자를 순회합니다.CAMBRIDGE 문자 체크: - 문자가 **C, A, M, B, R, I, D, G,..
백준 20004번 [베스킨라빈스 31](C++) -yes6686- 티스토리 백준 문제 풀이: 20004 (베스킨라빈스 31)문제 링크: https://www.acmicpc.net/problem/20004문제 설명:베스킨라빈스 31 게임에서 **n명의 참가자** 중에서 어떤 번호를 가진 참가자가 승리할 수 있는지 찾는 문제입니다. 각 참가자는 자신의 순서에 숫자를 1 이상 **i 이하**의 범위에서 부를 수 있습니다. 목표는 **31**이 되는 숫자를 부르는 것을 피하는 것입니다. 승리할 수 있는 참가자의 번호를 모두 출력해야 합니다.문제 해결 코드#include using namespace std;int dp[32][32]; // dp[i][j]: i명 게임 시 j번째 숫자에서의 승패 상태 저장int main() { ios::sync_with_stdio(false); ..
백준 2303번 [숫자 게임](C++) -yes6686- 티스토리 백준 문제 풀이: 2303 (숫자 게임)문제 링크: https://www.acmicpc.net/problem/2303문제 설명:여러 명의 참가자가 5장의 카드를 가지고 숫자 게임을 합니다. 각 참가자는 **5장의 카드 중 2장을 제외**한 나머지 3장의 카드의 합을 구합니다. 합을 **10으로 나눈 나머지**가 가장 큰 사람이 이기며, 동점일 경우 **가장 뒤에 등장한 참가자가 우승**합니다. 결과적으로 **우승자의 번호**를 출력해야 합니다.문제 해결 코드#include using namespace std;int arr[5]; // 각 참가자의 카드 5장을 저장할 배열int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n; // ..
백준 2702번 [초6 수학](C++) -yes6686- 티스토리 백준 문제 풀이: 2702 (초6 수학)문제 링크: https://www.acmicpc.net/problem/2702문제 설명:두 정수 a와 b가 주어졌을 때, **최소공배수**(LCM)와 **최대공약수**(GCD)를 구하는 문제입니다. 여러 개의 테스트 케이스를 입력받고 각각의 결과를 출력해야 합니다.문제 해결 코드#include using namespace std;// 최대공약수(GCD)를 구하는 함수: 유클리드 호제법 사용int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b);}// 최소공배수(LCM)를 구하는 함수int lcm(int a, int b) { return a * b / gcd(a, b); // a와 b의 ..
백준 1027번 [고층 건물](C++) -yes6686- 티스토리 백준 문제 풀이: 1027 (고층 건물)문제 링크: https://www.acmicpc.net/problem/1027문제 설명:좌우로 고층 건물이 일렬로 배치되어 있습니다. 특정 건물에서 다른 건물이 보이려면, 두 건물을 잇는 직선이 그 사이에 있는 건물의 꼭대기보다 높아야 합니다. 모든 건물에 대해 볼 수 있는 건물의 최대 개수를 구하는 문제입니다.문제 해결 코드#include using namespace std;int arr[51]; // 건물의 높이를 저장하는 배열int cnt[51]; // 각 건물에서 보이는 건물의 수를 저장하는 배열// 직선이 다른 건물 꼭대기를 통과하는지 확인하는 함수int checkLineMeetF(double x1, double y1, double x2, double y2..

728x90
LIST