[백준 10430] 나머지 [C]
소스코드 #include int main() { int A, B, C; scanf("%d %d %d", &A, &B, &C); printf("%d\n%d\n%d\n%d", (A+B)%C, ((A%C)+(B%C))%C, (A*B)%C, ((A%C)*(B%C))%C); } 출처 10430번: 나머지 첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000) www.acmicpc.net
2021. 7. 18.
[백준 1085] 직사각형에서 탈출 [C]
풀이 (x, y)가 경계선(x, 0), (0, y)과, 직선 x = w, y = h 중 어디까지의 거리가 최솟값인지 구하면 된다. 소스코드 #include #define MIN(a,b) (a < b ? a: b) int main(){ int x, y, w, h, min; scanf("%d %d %d %d", &x, &y, &w, &h); printf("%d", MIN(MIN(w - x, x), MIN(h - y, y))); } 출처 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net
2021. 7. 17.
[백준 2609] 최대공약수와 최소공배수 [C]
풀이 유클리드 호제법은 최대공약수를 구하는 알고리즘이다. 두 수 N, M (N > M)을 입력받는다. N을 M으로 나누었을 때의 몫과 나머지가 N, M이 되며 이 과정을 나머지가 0이 될 때 까지 반복한다.\ 나머지가 0이 될때의 N(몫)이 최대공약수이다. 두 수 N, M의 곱은 최대공약수(GCD)와 최소공배수(LCM)의 곱과 같다. 소스코드 #include int euclidean_gcd(int n, int m){ return m ? euclidean_gcd(m, n%m) : n; } int main(){ int n, m; scanf("%d %d", &n, &m); int gcd = euclidean_gcd(n, m); printf("%d\n%d", gcd, n*m / gcd); } 출처 및 참고자료 ..
2021. 7. 15.