티스토리 뷰
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 |
댓글