문제 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 코드 My answer n=int(input()) cnt,result=0,1 for i in range(n,1,-1): result*=i for i in str(result)[::-1]: if(i=='0'): cnt+=1 else: break print(cnt) Another answer t=int(input())//5 print(t+t//5+t//25) 풀이 나는 그냥 팩토리얼을 구하고, 뒤에서부터 0인수를 셌는데 이런 문제에서 팩토리얼을 직접구하는것은 시간복잡도가 크다고한다. 밑에 코드는 추후 수정
코딩테스트/백준[Python]
백준 파이썬 코딩테스트 문제 풀이문제 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 My answer n=int(input()) result=1 for i in range(n,1,-1): result*=i print(result) Another answer import math print(math.factorial(int(input()))) 풀이 math라이브러리의 factorial함수를 이용해도 된다.
문제 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 코드 My answer n=int(input()) i=2 while(n!=1): if(n%i==0): print(i) n//=i else: i+=1 풀이 그냥 2부터 시작해서 나눠지면 출력 안나누어 떨어지면 나누는수를 하나씩 증가하면서 풀었다.
문제 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 코드 My answer import sys import math input = sys.stdin.readline n, m = map(int, input().split()) array = [1 for i in range(m+1)] for i in range(2, int(math.sqrt(m))+1): if (array[i] == 1): j = 2 while (i*j =M): print(i) 풀이 이 문제는 전형적인 소수 구할 때 쓰는 방법인 에라토스테네스의 체를 이용하여 푸는 방법이다. 대..
문제 11576번: Base Conversion 타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의 www.acmicpc.net 코드 My answer import sys a,b=map(int,sys.stdin.readline().split()) n=int(input()) num=0 word=list(map(int,sys.stdin.readline().split())) word.reverse() for idx,i in enumerate(word): num+=i*(a**idx) word=[] while(num!=0): r=num%b word.append(r) num//..
[-2진수]-2089번 2089번: -2진수 -2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110 www.acmicpc.net My answer n=int(input()) tmp="" while(n!=0): if(n%(-2)!=0): n=n//(-2)+1 tmp+='1' else: n=n//(-2) tmp+='0' if(tmp==""): tmp+='0' print(tmp[::-1]) 더보기 -2진수라는 설명이 이해가 안가서 헷갈렸는데 그냥 2진수랑 똑같이 생각하는데 ..