본문 바로가기
반응형

[백준]214

[BaekJoon/백준] 2981번 검문 문제 ( 검문이랑 1도상관없지만 ) N개의 수를 M으로 나누었을 때, 나머지가 전부 같은 M을 찾는 문제. 굉~장히 어려웠다. 개인적으로 너무 어려웠다. 이틀정도 못풀었다. 수학적인 사고가 요구된다. 그 접근만 알게 되면 쉽게 느끼질 수도 있다. #include #include int N; int a[100]; int gc[100]; int p; int compar(int *a, int *b) { if(*a *b) return 1; else return 0; } int gcd(int a, int b) { int temp; while(b != 0) { temp = a; a = b; b = temp % b; } return a; } void prin.. 2021. 3. 1.
[BaekJoon/백준] 1934번 최소공배수 문제. 유클리드 호제법으로 (A, B)의 최대공약수를 구한 뒤 최소공배수 = A * B / 최대공약수 식을 가지면 된다. #include int N; int gcd(int a, int b) { if(b == 0) return a; return gcd(b, a % b); } int main() { int x, y; scanf("%d", &N); for(int i = 0; i < N; i++) { scanf("%d %d", &x, &y); printf("%d\n", x * y / gcd(x, y)); } } 2021. 2. 27.
[BaekJoon/백준] 2609번 최소공배수 , 최대공약수를 찾으라는 문제. 최소공배수를 위한 방법으로는 '유클리드 호제법'을 이용하면 된다. 유클리드 호제법 (A, B)의 최대공약수는 (B, A % B)의 최대공약수와 같다. 이 과정의 반복 속에 나머지가 0이 되었을 때, 나누는 수가 두 수의 최대공약수다. 그리고 최소공배수 = A * B / 최대공약수 이다. (궁금하다면, 두 수의 최대공약수-최소공배수를 직접 풀어보는 과정을 갖게 되면 알 수 있다.) 이를 코드로 짜면 #include int x, y; int G, L; // GCD, LCM int gcd(int a, int b) { if(b == 0) return a; return gcd(b, a % b); } int main() { scanf("%d %d", &x, &y); G =.. 2021. 2. 27.
[BaekJoon/백준] 1037번 약수 문제. N의 약수들이 주어졌을 때, N을 구하면 된다. 인풋이 어떻게 주어지는지 모르겠어서, 질문검색으로 글을 좀 찾아보다가... 문제의 핵심을 알아버렸다. 주어진 수들 중 최솟값 * 최댓값 = N 그래서, 수들을 오름차순으로 나열한 뒤 맨앞과 맨뒤 수를 곱해주었다. #include #include int N; int a[1000000]; int compar(int *a, int *b) { if(*a *b) return 1; else return 0; } int main() { scanf("%d", &N); for(int i = 0; i < N; i++) { scanf("%d", &a[i]); } qsort(a, N, sizeof(int), co.. 2021. 2. 27.
반응형