본문 바로가기
Problem Solving/BOJ

[BOJ][Python]1676번 풀이

by NoiB 2022. 5. 29.
반응형

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

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

n = int(input())
ans = 1
for i in range(1,n+1):
    ans *= i
ans = list(str(ans))
cnt = 0
while 1:
    if ans[len(ans)-1] != '0':
        print(cnt)
        break
    else:
        ans.pop()
        cnt += 1

이번엔 지난 번에 bfs공부를 하다가 찾았던 다른 분들의 풀이 중에서 써먹을만한게 있다 싶었던 방법을 한 번 사용해봤습니다. 해당 방법은 데이터를 하나씩 쪼개고 싶은데 공백이나 다른 구분할게 없을 때 쓸 수 있는 방법인데요. 저도 정확한 원리는 잘 모르겠으나 문자열을 list()라는 함수로 변환을 시켜주면 해당 문자열의 문자들을 순서대로 하나씩 원소로 갖는 리스트를 반환해줍니다. 알아두면 언젠간 써먹겠구나 싶었는데 문득 이 문제를 풀면서 해당 방법이 생각나서 한 번 써봤습니다.

 

물론 해당 방법을 굳이 쓸 필요는 없습니다. 그냥 문자열을 쓰시더라도 맨마지막 인덱스에 해당하는 문자를 지우시면 되니까요. 저는 그냥 한 번 써보고 싶어서 과정을 하나 더 거쳤을 뿐입니다. 오히려 비효율적이라고 할 수 있겠네요.

반응형

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

[BOJ][Python]11723번 풀이  (0) 2022.05.29
[BOJ][Python]9655번 풀이  (0) 2022.05.29
[BOJ][Python]1260번 풀이  (0) 2022.05.28
[BOJ][Python]2606번 풀이  (0) 2022.05.28