'Algorithm/Problem Solving'에 해당되는 글 41건

  1. 2020.05.17 :: [BOJ/1676] 팩토리얼 0의 개수
  2. 2020.05.16 :: [BOJ/10872] 팩토리얼
  3. 2020.05.16 :: [BOJ/11653] 소인수분해
  4. 2020.05.15 :: [BOJ/6588] 골드바흐의 추측
  5. 2020.05.14 :: [BOJ/1929] 소수 구하기
  6. 2020.05.13 :: [BOJ/1978] 소수 찾기
  7. 2020.05.13 :: [BOJ/11576] Base Conversion
  8. 2020.05.12 :: [BOJ/2089] -2진수
  9. 2020.05.12 :: [BOJ/1212] 8진수 2진수
  10. 2020.05.11 :: [BOJ/1373] 2진수 8진수
Algorithm/Problem Solving 2020. 5. 17. 14:18

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/1676

 

사용 알고리즘

 

풀이

- 끝자리가 0이 되려면 2와 5가 필요

- 따라서 0이 몇 개인지 알아내려면, N!를 소인수 분해하여 2와 5의 개수중 작은 수의 개수가 0의 개수

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/boj/1676.cpp

#include <cstdio>
 
int main(void) {
    int fivesCount = 0, twosCount = 0;
    int n; for (scanf("%d"&n); n--;) {
        int num = n + 1;
        while (num % 5 == 0) {
            num /= 5;
            ++fivesCount;
        }
        while (num % 2 == 0) {
            num /= 2;
            ++twosCount;
        }
    }
    printf("%d\n", (fivesCount < twosCount) ? fivesCount : twosCount);
    return 0;
}
cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/2751] 수 정렬하기 2  (0) 2020.05.18
[BOJ/2004] 조합 0의 개수  (0) 2020.05.17
[BOJ/10872] 팩토리얼  (0) 2020.05.16
[BOJ/11653] 소인수분해  (0) 2020.05.16
[BOJ/6588] 골드바흐의 추측  (0) 2020.05.15
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 16. 15:03

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/10872

 

사용 알고리즘

 

풀이

 

소스 코드

- https://github.com/moomini/algorithm/tree/master/boj

#include <cstdio>
 
int main(void) {
    int ans = 1;
    int n; for (scanf("%d"&n); n--;) {
        ans *= (n + 1);
    }
    printf("%d\n", ans);
    return 0;
}
cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/2004] 조합 0의 개수  (0) 2020.05.17
[BOJ/1676] 팩토리얼 0의 개수  (0) 2020.05.17
[BOJ/11653] 소인수분해  (0) 2020.05.16
[BOJ/6588] 골드바흐의 추측  (0) 2020.05.15
[BOJ/1929] 소수 구하기  (0) 2020.05.14
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 16. 14:59

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/11653

 

사용 알고리즘

 

풀이

- 2부터 루트N까지 루프를 돌며 나눠지지 않을 때 까지 계속 나누며 출력

- N 자체가 소수일 수도 있으므로 해당 부분 처리

 

소스 코드

- https://github.com/moomini/algorithm/tree/master/boj

#include <cstdio>
 
int main(void) {
    int n; scanf("%d"&n);
    for (int i = 2; i * i <= n; ++i) {
        while (n % i == 0) {
            printf("%d\n", i);
            n /= i;
        }
    }
    if (n > 1printf("%d\n", n);
    return 0;
}
cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/1676] 팩토리얼 0의 개수  (0) 2020.05.17
[BOJ/10872] 팩토리얼  (0) 2020.05.16
[BOJ/6588] 골드바흐의 추측  (0) 2020.05.15
[BOJ/1929] 소수 구하기  (0) 2020.05.14
[BOJ/1978] 소수 찾기  (0) 2020.05.13
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 15. 20:26

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/6588

 

사용 알고리즘

- 에라토스테네스의 채

 

풀이

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/boj/6588.cpp

#include <cstdio>
 
int arr[1000003];
 
int main(void) {
    for (int i = 2; i <= 1000000++i) {
        if (arr[i] == 0) {
            arr[i] = 1;
            for (int j = i + i; j <= 1000000; j += i) {
                arr[j] = -1;
            }
        }
    }
    while (1) {
        int n; scanf("%d"&n);
        if (n == 0break;
        int flag = 0;
        for (int i = 2; i <= n; ++i) {
            if (arr[i] == 1 && arr[n - i] == 1) {
                printf("%d = %d + %d\n", n, i, n - i);
                flag = 1;
                break;
            }
        }
        if (flag == 0printf("Goldbach's conjecture is wrong.\n");
    }
 
    return 0;
}
cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/10872] 팩토리얼  (0) 2020.05.16
[BOJ/11653] 소인수분해  (0) 2020.05.16
[BOJ/1929] 소수 구하기  (0) 2020.05.14
[BOJ/1978] 소수 찾기  (0) 2020.05.13
[BOJ/11576] Base Conversion  (0) 2020.05.13
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 14. 22:27

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/1929

 

사용 알고리즘

- 에라토스테네스의 채

 

풀이

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/boj/1929.cpp

#include <cstdio>
 
int arr[1000003];
 
int main(void) {
    for (int i = 2; i <= 1000000++i) {
        if (arr[i] == 0) {
            arr[i] = 1;
            for (int j = i + i; j <= 1000000; j += i) {
                arr[j] = -1;
            }
        }
    }
    int m, n; scanf("%d %d"&m, &n);
    for (int i = m; i <= n; ++i) {
        if (arr[i] == 1) {
            printf("%d\n", i);
        }
    }
    return 0;
}
cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/11653] 소인수분해  (0) 2020.05.16
[BOJ/6588] 골드바흐의 추측  (0) 2020.05.15
[BOJ/1978] 소수 찾기  (0) 2020.05.13
[BOJ/11576] Base Conversion  (0) 2020.05.13
[BOJ/2089] -2진수  (0) 2020.05.12
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 13. 23:02

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/1978

 

사용 알고리즘

 

풀이

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/boj/1978.cpp

#include <cstdio>
 
int main(void) {
    int ans = 0;
    int n; for (scanf("%d"&n); n--;) {
        int num; scanf("%d"&num);
        if (num < 2continue;
        int flag = 1;
        for (int i = 2; i * i <= num; ++i) {
            if (num % i == 0) {
                flag = 0;
                break;
            }
        }
        if (flag) ++ans;
    }
    printf("%d\n", ans);
    return 0;
}
cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/6588] 골드바흐의 추측  (0) 2020.05.15
[BOJ/1929] 소수 구하기  (0) 2020.05.14
[BOJ/11576] Base Conversion  (0) 2020.05.13
[BOJ/2089] -2진수  (0) 2020.05.12
[BOJ/1212] 8진수 2진수  (0) 2020.05.12
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 13. 22:54

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/11576

 

사용 알고리즘

 

풀이

- A진수를 10진수로 변환하고, 10진수를 B진수로 변환

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/boj/11576.cpp

#include <cstdio>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main(void) {
    int a, b; scanf("%d %d"&a, &b);
    int num = 0;
    int m; for (scanf("%d"&m); m--;) {
        num *= a;
        int temp; scanf("%d"&temp);
        num += temp;
    }
    if (num == 0printf("0");
    vector<int> v;
    while (num != 0) {
        v.push_back(num % b);
        num /= b;
    }
    reverse(v.begin(), v.end());
    int len = v.size();
    for (int i = 0; i < len; ++i) printf("%d ", v[i]);
    printf("\n");
    return 0;
}
cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/1929] 소수 구하기  (0) 2020.05.14
[BOJ/1978] 소수 찾기  (0) 2020.05.13
[BOJ/2089] -2진수  (0) 2020.05.12
[BOJ/1212] 8진수 2진수  (0) 2020.05.12
[BOJ/1373] 2진수 8진수  (0) 2020.05.11
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 12. 23:14

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/2089

 

사용 알고리즘

 

풀이

- 나머지가 음수가 되지 않도록 계산

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/boj/2089.cpp

#include <cstdio>
#include <vector>
#include <algorithm>
 
using namespace std;
 
int main(void) {
    int n; scanf("%d"&n);
    vector<int> v;
    if (n == 0printf("0");
    while (n != 0) {
        int remainder = n % (-2);
        n /= (-2);
        if (remainder == -1) {
            remainder = 1;
            ++n;
        }
        v.push_back(remainder);
    }
    reverse(v.begin(), v.end());
    int size = v.size();
    for (int i = 0; i < size++i) printf("%d", v[i]);
    printf("\n");
    return 0;
}

Colored by Color Scripter

cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/1978] 소수 찾기  (0) 2020.05.13
[BOJ/11576] Base Conversion  (0) 2020.05.13
[BOJ/1212] 8진수 2진수  (0) 2020.05.12
[BOJ/1373] 2진수 8진수  (0) 2020.05.11
[BOJ/2745] 진법 변환  (0) 2020.04.29
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 12. 23:00

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/1212

 

사용 알고리즘

 

풀이

- 8진수 1자리당 2진수 3자리 (첫 번째 수는 1로 시작)

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/boj/1212.cpp

#include <cstdio>
#include <cstring>
#include <algorithm>
 
using namespace std;
 
char input[333337];
 
int main(void) {
    scanf("%s", input);
    int len = strlen(input);
    for (int i = 0; i < len; ++i) {
        int num = input[i] - '0';
        int temp[3];
        for (int j = 0; j < 3++j) {
            temp[j] = num % 2;
            num /= 2;
        }
        reverse(temp, temp + 3);
        if (i == 0) {
            int flag = 0;
            for (int j = 0; j < 3++j) {
                if (flag == 1) {
                    printf("%d", temp[j]);
                }
                if (flag == 0 && temp[j] == 1) {
                    flag = 1;
                    printf("%d", temp[j]);
                }
            }
            if (flag == 0printf("0\n");
        }
        else {
            for (int j = 0; j < 3++j) {
                printf("%d", temp[j]);
            }
        }
 
    }
    printf("\n");
    return 0;
}

Colored by Color Scripter

cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/11576] Base Conversion  (0) 2020.05.13
[BOJ/2089] -2진수  (0) 2020.05.12
[BOJ/1373] 2진수 8진수  (0) 2020.05.11
[BOJ/2745] 진법 변환  (0) 2020.04.29
[BOJ/11005] 진법 변환 2  (0) 2020.04.27
posted by DevMoomin
:
Algorithm/Problem Solving 2020. 5. 11. 23:33

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/1373

 

사용 알고리즘

 

풀이

- 세 자리씩 끊어서 계산

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/1373.cpp

#include <cstdio>
#include <cstring>
 
char arr[1000003];
 
int main(void) {
    scanf("%s", arr);
    int len = strlen(arr);
    if ((len % 3== 1) {
        printf("%d", arr[0- '0');
    }
    else if((len % 3== 2) {
        printf("%d", (arr[0- '0'* 2 + (arr[1- '0'));
    }
    for (int i = len % 3; i < len; i += 3) {
        printf("%d", (arr[i] - '0'* 4 + (arr[i + 1- '0'* 2 + (arr[i + 2- '0'));
    }
    printf("\n");
    return 0;
}

Colored by Color Scripter

cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/2089] -2진수  (0) 2020.05.12
[BOJ/1212] 8진수 2진수  (0) 2020.05.12
[BOJ/2745] 진법 변환  (0) 2020.04.29
[BOJ/11005] 진법 변환 2  (0) 2020.04.27
[BOJ/9613] GCD 합  (0) 2020.04.23
posted by DevMoomin
: