수학 282

백준(C) 1476번 날짜 계산 풀이

C로 구현한 1476번 날짜 계산 문제 풀이입니다. https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net #include int main() { int e, s, m; scanf("%d %d %d", &e, &s, &m); int a = 1, b = 1, c = 1; int count=0; while(1) { count ++; if(e == a && s == b && m == c) break; a++; b++; c++; if(a == 16) a = 1; ..

백준(C) 3053번 택시 기하학 풀이

C로 구현한 3053번 택시 기하학 문제 풀이입니다. https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net #include #define PI 3.14159265358979 int main() { double n; scanf("%lf", &n); printf("%lf\n", n*n*PI); printf("%lf\n", n*n*2); } 첫째 줄에 출력해야하는 유클리드 기하학에서의 원의 넓이는 n * n * PI 를 계산하여 해결할 수 있고 두번째 줄에 출력해야하는 택시 기..

백준(C) 3046번 R2 풀이

C로 구현한 3046번 R2 문제 풀이입니다. https://www.acmicpc.net/problem/3046 3046번: R2 두 숫자 R1과 R2가 있을 때, 두 수의 평균 S는 (R1+R2)/2와 같다. 상근이는 정인이 생일 선물로 두 숫자 R1과 R2를 주려고 한다. 생일 파티에서 상근이는 정인이에게 이 두 숫자를 말해주고, 정인이는 www.acmicpc.net #include int main() { int r1, s; scanf("%d %d", &r1, &s); int r2 = s*2 - r1; printf("%d", r2); } 문제에서 요구하는 바는 R2를 구하는 것이고, R2를 미지수 x로 두고 S를 구하는 공식은 다음과 같다. (R1+x) / 2 = S 그러므로, x를 구하고자 한다면 ..

백준(C) 2163번 초콜릿 자르기 풀이

C로 구현한 2163번 초콜릿 자르기 문제 풀이입니다. https://www.acmicpc.net/problem/2163 2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿 www.acmicpc.net #include int main() { int n, m; scanf("%d %d", &n, &m); printf("%d", (n*m)-1); } 문제에서 요구하는 바는 1 x 1 크기의 초콜릿으로 쪼개기 위한 최소 쪼개기 횟수를 구하는 것이기 때문에 단순히 두 정수를 입력받고 곱한 뒤 1을 감소시킨 값을 출력하면 된다. 여기서 1을 감소..

백준(C) 11050번 이항 계수 1 풀이

C로 구현한 11050번 이항 계수 1 문제 풀이입니다. https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net #include int main() { int n, k, a1 = 1, a2 = 1, b = 1; scanf("%d %d", &n, &k); for(int i=n-k; i>=2; i--) { a1 *= i; } for(int i=k; i>=2; i--) { a2 *= i; } for(int i=n; i>=2; i--) { b *= i; } printf("%d\n", b/(a1*a2)); } 이 문제에서 요구하는 이항..

백준(c) 10953번 A+B - 6 풀이

C로 구현한 10953번 A+B - 6 문제 풀이입니다. https://www.acmicpc.net/problem/10953 10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net #include int main() { int tc, a, b; scanf("%d", &tc); while(tc-- != 0) { scanf("%d,%d", &a, &b); printf("%d\n", a+b); } } 문제와 같이 입력 형식에 맞게 정수 a와 b를 입력받은 후 그 합을 출력한다.

백준(C) 11653번 소인수분해 풀이

C로 구현한 11653번 소인수분해 문제 풀이입니다. https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net #include int main() { int n; scanf("%d", &n); if(n == 1) return 0; int number = 2; while(n > 1) { if(n % number == 0) { printf("%d\n", number); n /= number; } else { number ++; } } } 정수 n을 입력받고 그 값이 1인 경우 아무것도 출력하지 않도록 프로그램을 종료한다. 소인수분해는 기본적으로 2부터 진행하기 때문에 변수 n..

백준(C) 4153번 직각삼각형 풀이

C로 구현한 4153번 직각삼각형 문제 풀이입니다. https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net #include int main() { long a, b, c; while(1) { scanf("%ld %ld %ld", &a, &b, &c); if(a == 0 && b == 0 && c == 0) break; a *= a; b *= b; c *= c; if(a+b==c || a+c==b || b+c==a) printf("right\n"); else printf..

백준(C) 2747번 피보나치 수 풀이

C로 구현한 2747번 피보나치 수 문제 풀이입니다. https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net #include int arr[46] = {0,}; int fibo(int x) { if(x == 1 || x == 2) return 1; if(arr[x] != 0) return arr[x]; return arr[x] = fibo(x - 1) + fibo(x - 2); } int main() { int n; s..

백준(C) 5543번 상근날드

C로 구현한 5543번 상근날드 문제 풀이입니다. https://www.acmicpc.net/problem/5543 5543번: 상근날드 입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가 www.acmicpc.net #include int main() { int arr[6] = {0,}; for(int i=0; i