나머지 합
처음으로 짠 코드.
순서쌍만을 생각해서 하나씩 접근했다.
import sys
N,M = map(int,input().split())
N_list = list(map(int,input().split()))
print(N_list)
rst = 0
for i in range(N) :
for j in range(i,N) :
print("\n[",i,",",j,"]")
sum=0
for k in range (i,j+1) :
print("N_list[",k,"] = ",N_list[k])
sum += N_list[k]
print("sum = ",sum)
if (sum!=0)and(sum%M==0) :
print("**** find num ****\n")
sum = 0
rst+=1
pprint("\n결과 : ",rst)
5
3
1 2 3 1 2
[1, 2, 3, 1, 2]
[ 0 , 0 ]
N_list[ 0 ] = 1
sum = 1
[ 0 , 1 ]
N_list[ 0 ] = 1
N_list[ 1 ] = 2
sum = 3
**** find num ****
[ 0 , 2 ]
N_list[ 0 ] = 1
N_list[ 1 ] = 2
N_list[ 2 ] = 3
sum = 6
**** find num ****
[ 0 , 3 ]
N_list[ 0 ] = 1
N_list[ 1 ] = 2
N_list[ 2 ] = 3
N_list[ 3 ] = 1
sum = 7
[ 0 , 4 ]
N_list[ 0 ] = 1
N_list[ 1 ] = 2
N_list[ 2 ] = 3
N_list[ 3 ] = 1
N_list[ 4 ] = 2
sum = 9
**** find num ****
[ 1 , 1 ]
N_list[ 1 ] = 2
sum = 2
[ 1 , 2 ]
N_list[ 1 ] = 2
N_list[ 2 ] = 3
sum = 5
[ 1 , 3 ]
N_list[ 1 ] = 2
N_list[ 2 ] = 3
N_list[ 3 ] = 1
sum = 6
**** find num ****
[ 1 , 4 ]
N_list[ 1 ] = 2
N_list[ 2 ] = 3
N_list[ 3 ] = 1
N_list[ 4 ] = 2
sum = 8
[ 2 , 2 ]
N_list[ 2 ] = 3
sum = 3
**** find num ****
[ 2 , 3 ]
N_list[ 2 ] = 3
N_list[ 3 ] = 1
sum = 4
[ 2 , 4 ]
N_list[ 2 ] = 3
N_list[ 3 ] = 1
N_list[ 4 ] = 2
sum = 6
**** find num ****
[ 3 , 3 ]
N_list[ 3 ] = 1
sum = 1
[ 3 , 4 ]
N_list[ 3 ] = 1
N_list[ 4 ] = 2
sum = 3
**** find num ****
[ 4 , 4 ]
N_list[ 4 ] = 2
sum = 2
결과 : 7
답은 잘 나오지만 시간초과.
https://smhope.tistory.com/380
참고자료
import sys
input = sys.stdin.readline
N,M= map(int, input().split())
num = list(map(int, input().split()))
sum = 0
numRemainder = [0] * M
for i in range(N):
sum += num[i]
numRemainder[sum % M] += 1
result = numRemainder[0]
for i in numRemainder:
result += i*(i-1)//2
print(result)
파이썬으로 첫 문제 풀어봐서 좀 헷갈린다.
'PROGRAMMING CODE > PYTHON' 카테고리의 다른 글
[BAEKJOON] No.2914 Python (0) | 2023.02.06 |
---|---|
[BAEKJOON] No.10699 Python (0) | 2023.01.27 |
[BAEKJOON] No.2163 Python (0) | 2023.01.27 |
[BAEKJOON] No.3046 Python (0) | 2023.01.27 |
PYTHON DOWNLODE _ macOS (0) | 2021.10.14 |