본문 바로가기

728x90
SMALL

BAEKJOON/수학

(107)
백준 2869번 [달팽이는 올라가고 싶다](C++)-yes6686- 티스토리 백준 문제 풀이: 2869 [달팽이는 올라가고 싶다]문제 링크: https://www.acmicpc.net/problem/2869문제 설명:달팽이가 나무 막대를 올라가는데, 낮 동안에는 a미터를 올라가고 밤에는 b미터를 미끄러집니다. 나무 막대의 높이는 v미터입니다. 달팽이가 정상에 도달하는 데 걸리는 최소 날짜를 구하는 문제입니다.단, 달팽이는 정상에 도달하면 밤에 미끄러지지 않습니다.문제 해결 코드#include using namespace std;int main() { int a, b, v; cin >> a >> b >> v; int dailyClimb = a - b; if (a >= v) { cout 코드 설명핵심 알고리즘: 수학적 계산을 통해 하루에 올라..
백준 2751번 [수 정렬하기 2](C++)-yes6686- 티스토리 백준 문제 풀이: 2751 [수 정렬하기 2]문제 링크: https://www.acmicpc.net/problem/2751문제 설명:주어진 정수 n개의 수를 오름차순으로 정렬하는 문제입니다. 입력 범위가 크기 때문에 효율적인 알고리즘을 사용해야 합니다.문제 해결 코드#include #include using namespace std;// 퀵 정렬 함수void quickSort(int* data, int start, int end) { if (start >= end) { return; } int key = start; int i = start + 1; int j = end; while (i = data[key] && j > start) { j..
백준 2609번 [최대공약수와 최소공배수](C++)-yes6686- 티스토리 백준 문제 풀이: 2609 [최대공약수와 최소공배수]문제 링크: https://www.acmicpc.net/problem/2609문제 설명:두 자연수가 주어질 때, 두 수의 최대공약수(GCD)와 최소공배수(LCM)를 구하는 문제입니다.문제 해결 코드#include using namespace std;int main() { int a, b; cin >> a >> b; // 최대공약수를 구하기 위한 범위 설정 int len = (a > b) ? b : a; int maxGCD = 1; for (int i = 1; i 코드 설명핵심 알고리즘: 최대공약수는 두 수를 나누어 떨어뜨릴 수 있는 가장 큰 수를 의미하며, 최소공배수는 두 수의 곱을 최대공약수로 나눈 값입니다.구현 세부사..
백준 2292번 [벌집](C++)-yes6686- 티스토리 백준 문제 풀이: 2292 [벌집]문제 링크: https://www.acmicpc.net/problem/2292문제 설명:벌집 구조에서 주어진 방 번호 N까지 도달하기 위해 거쳐야 하는 최소 방 수를 구하는 문제입니다.중심 방(1번 방)부터 시작하여 각 층마다 방의 개수는 6씩 증가합니다.예를 들어, 첫 번째 층에는 1개의 방, 두 번째 층에는 6개의 방, 세 번째 층에는 12개의 방이 있습니다.문제 해결 코드#include using namespace std;int main() { int N; cin >> N; if (N == 1) { cout cnt) { cnt += 6 * layer; // 각 층의 방 개수는 6의 배수로 증가 layer++; ..
백준 2108번 [통계학](C++)-yes6686- 티스토리 백준 문제 풀이: 2108 [통계학]문제 링크: https://www.acmicpc.net/problem/2108문제 설명:주어진 데이터들에 대해 다음의 네 가지 통계값을 구하는 문제입니다:1. 산술평균: 모든 데이터의 합을 데이터 개수로 나눈 값 (소수점 첫째 자리에서 반올림).2. 중앙값: 데이터들을 크기순으로 정렬했을 때 중앙에 위치한 값.3. 최빈값: 가장 많이 나타나는 데이터 값. 여러 개일 경우 두 번째로 작은 값을 선택.4. 범위: 데이터들 중 최대값과 최소값의 차이.문제 해결 코드#include #include #include using namespace std;int arr[500001];int check[8001];bool compare(int a, int b) { return a..
백준 1978번 [소수 찾기](C++)-yes6686- 티스토리 백준 문제 풀이: 1978 [소수 찾기]문제 링크: https://www.acmicpc.net/problem/1978문제 설명:주어진 n개의 숫자 중에서 소수인 숫자의 개수를 구하는 문제입니다. 소수는 1과 자기 자신만으로 나누어 떨어지는 숫자를 의미합니다.문제 해결 코드#include using namespace std;int main() { int n; int x; int cnt = 0; int result = 0; cin >> n; for (int i = 0; i > x; for (int j = 1; j 코드 설명입력: 첫 번째로 입력받은 숫자 n은 체크해야 할 숫자의 개수를 의미하며, 그 다음에는 숫자 리스트가 입력됩니다.로직:각 숫자에 대해, 1부터 ..
백준 1929번 [소수 구하기](C++)-yes6686- 티스토리 백준 문제 풀이: 1929 [소수 구하기]문제 링크: https://www.acmicpc.net/problem/1929문제 설명:자연수 M과 N이 주어졌을 때, M 이상 N 이하의 모든 소수를 구하는 문제입니다.문제 해결 코드// 에라토스테네스의 체를 이용한 소수 구하기#include using namespace std;int arr[1000001];int main() { int a, b; cin >> a >> b; // 배열 초기화 for (int i = 2; i 코드 설명입력: 두 개의 정수 M(a)과 N(b).로직:1부터 N까지의 자연수를 담은 배열을 준비합니다.2부터 √N까지 반복하며, 해당 수의 배수를 배열에서 제거합니다.M 이상 N 이하의 배열 값 중 제거되지 않은 값을 ..
백준 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