출처 : https://www.acmicpc.net/problem/17618
따로 알고리즘이 분류되지 않은 문제이다.
수학으로 분류될 수 있을 것 같다.
풀이
파이썬이 아니면 아주 간단하게 풀 수 있는 문제이지만 파이썬은 시간 초과가 발생한다.
아래 코드도 PyPy3 채점기로 통과했지만 Python3 채점기로는 시간초과가 발생한다.
import sys
input=sys.stdin.readline
if __name__ == "__main__":
ans = 0
for n in range(1, int(input())+1):
s = 0
tmp = n
while tmp:
s += tmp%10
tmp //= 10
if n%s == 0: ans += 1
print(ans)
자릿수 덧샘을 문제의 조건에 맞춰서 하드 코딩하면 조금 더 빠르게 연산할 수 있지만, 코드의 가시성을 위해 자릿수 덧셈에 사용하는 가장 기본적인 알고리즘으로 문제를 풀었다.
글을 쓰다가 생각난 것인데, 문제에서 입력이 많이 주어지는 경우가 아니면 굳이 sys를 import해서 사용할 필요가 없다.
(오히려 더 느려지더라!)
결과 인증
파이썬으로 푸신 분이 딱 한분 계시던데.. 대단한 분이신 것 같다..
단순하게 풀어서 그런지 글이 짧아졌지만 대충 쓴 건 아니다!
'Computer_Language > Algorithm' 카테고리의 다른 글
[백준] 10868번 최솟값 Python 해설 (0) | 2019.11.18 |
---|---|
[백준] 4673번 셀프 넘버 C, Python 해설 (0) | 2019.10.29 |
[백준] 1652번 누울 자리를 찾아라 파이썬 해설 (Python) (0) | 2019.10.26 |
[백준] 11403번 경로 찾기 파이썬 해설 (Python) (0) | 2019.10.25 |
[백준] 1058번 친구 파이썬 해설 (Python) (0) | 2019.10.23 |