티스토리 뷰

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

모든 문제에 대한 저작권은 위 강의에 있습니다.

문제

자연수 N이 입력되면 N! 값에서 일의 자리부터 연속적으로 ‘0’이 몇 개 있는지 구하는 프로그램을 작성하세요. 만약 5! =  × ×  ×  × = 120으로 일의자리부터 연속적된 ‘0’의 개수는 1입니다. 만약 12! = 479001600으로 일의자리부터 연속적된 ‘0’의 개수는 2입니다.

입력 설명

첫 줄에 자연수 N(10<=N<=1,000)이 입력됩니다.

출력 설명

일의 자리부터 연속된 0의 개수를 출력합니다.

입력 예제 1

12

출력 예제 1

2

제출 코드

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이 되는 수를 출력해주었다.

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

🙏 29. 3의 개수는?(small)  (0) 2023.03.19
🙏 27. N!의 표현법  (0) 2023.03.17
🙏 26. 마라톤  (0) 2023.03.16
🙏 25. 석차 구하기  (0) 2023.03.15
🙏 24. Jolly Jumpers  (0) 2023.03.14
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
«   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