티스토리 뷰

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비 - 인프런 | 강의

강의 저작권으로 인해 문제를 공개하지 않았으며, 답안 코드 혹은 성공한 코드가 작성된 게시글입니다.

27. N!의 표현법


2023년 2월 14일

#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int N = 0;
    cin >> N;
    
    vector<int> store(N + 1);
    
    for(int i = 2; i <= N; i++)
    {
        int temp = i;
        int divide = 2;
        while(temp > 1)
        {
            if(divide > i)
                break;
            
            if(temp % divide == 0)
            {
                temp /= divide;
                store[divide]++;
            }
            else
                divide++;
        }
    }
    
    cout << N <<"! = ";
    
    for(int i = 0; i < N + 1; i++)
    {
        if(store[i] == 0)
            continue;
        
        cout << store[i] << ' ';
    }
    
    return 0;
}

숫자를 계속해서 나눠주기 위해 while문을 사용했다.

28. N!에서 0의 개수


2023년 2월 14일

#include <iostream>
#include<algorithm>

using namespace std;

int main()
{
    int N = 0;
    cin >> N;
    
    int twoCnt = 0;
    int fiveCnt = 0;
    
    for(int i = 1; i <= N; i++)
    {
        int temp = i;
        while(i > 1)
        {
            if(temp % 2 == 0)
            {
                twoCnt++;
                temp /= 2;
                
            }
            else if(temp % 5 == 0)
            {
                fiveCnt++;
                temp /= 5;
            }
            else
                break;
        }
    }
    
    cout << min(twoCnt, fiveCnt);
    
    
    return 0;
}

0으로 끝나려면 10을 곱하면 된다. 그래서 2와 5가 곱해진 수를 체크한 후 10이 되는 수를 출력해주었다.

29. 3의 개수는? (small)


2023년 2월 14일

#include <iostream>

using namespace std;

int main()
{
    int N = 0;
    cin >> N;
    
    int cnt = 0;
    for(int i = 3; i <= N; i++)
    {
        int temp = i;
        while(temp > 2)
        {
            if(temp % 10 == 3)
            {
                cnt++;
                temp /= 10;
            }
            else
                temp /= 10;
        }
    }
    cout << cnt;
    
    return 0;
}

입력한 수를 for문을 통해 전부 다 체크하는 방법이다. 수의 제한이 크지 않아 이 방법이 가능했다.

'😈 알고리즘 > 🍃 인프런 #1' 카테고리의 다른 글

🙏 문제 푼 개수  (0) 2023.02.22
🙏 30, 31번 문제  (0) 2023.02.21
🙏 25, 26번 문제  (0) 2023.02.19
🙏 23, 24번 문제  (0) 2023.02.18
🙏 21, 22번 문제  (0) 2023.02.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
링크
Total
Today
Yesterday