반응형
백준 BAEKJOON 17206번 준석이의 수학 숙제 [PYTHON/파이썬]
<문제 출처> (BRONZE Ⅰ)
https://www.acmicpc.net/problem/17206
<코드>
N의 조건을 보면 10 이상 80000 이하이다.
그냥 생각한 대로 코드를 짜면 시간초과가 난다.
먼저 리스트의 크기를 80001 만큼 만든 후에
3으로 나눠지거나 7로 나눠지는 부분이 있으면
배수들의 합을 리스트에 담아야한다.
메모이제이션을 활용하는 것이다.
<코드>
T = int(input())
N = list(map(int, input().split()))
lst = [0] * 80001
ans = 0
for i in range(80001):
if i % 3 == 0 or i % 7 == 0:
ans += i
lst[i] = ans
for j in N:
print(lst[j])
반응형
'ALGORITHM > PYTHON' 카테고리의 다른 글
백준 BAEKJOON 20001번 고무오리 디버깅 [PYTHON/파이썬] (0) | 2024.01.29 |
---|---|
백준 BAEKJOON 20053번 최소, 최대 2 [PYTHON/파이썬] (1) | 2024.01.28 |
백준 BAEKJOON 13420번 사칙연산 [PYTHON/파이썬] (0) | 2024.01.26 |
백준 BAEKJOON 13410번 거꾸로 구구단 [PYTHON/파이썬] (0) | 2024.01.25 |
백준 BAEKJOON 17496번 스타후르츠 [PYTHON/파이썬] (1) | 2024.01.24 |