[C++] 백준 17427 약수의 합 2
https://www.acmicpc.net/problem/17427 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 문제 해결 시간으로 보았을 때 $O(n)$의 시간복잡도를 가져야한다. 그러기 위해서는 각각의 약수의 합을 구해서 더하는 방식으로 할 수 없다.(최소 $O(n\sqrt{n})$) 1부터 n까지 반복문 $i$을 돌릴 때 n을 $i$로 나누면 n까지 숫자중 $i$를 약수로 갖는 개수가 나온다. 따라서 $i$를 곱해주면 $i$를 약수로 갖는 것들..
2023. 10. 31.
[python] 백준 1201 NMK
https://www.acmicpc.net/problem/1201 1201번: NMK 첫째 줄에 세 정수 N, M, K가 주어진다. www.acmicpc.net 문제 해결 먼저 수열을 구할 수 있기 위한 n의 범위를 알아야한다. m+k-1 ≤ n ≤ m*k 이다. n이 가장 작을 때는 [1, 2, 3, .. . m, m-1, m-2, . . . m+k-1] 수열이며 n이 가장 클 때는 [k,k-1,k-2, . . . 1, 2*k, 2*k-1, . . . k+1, . . . m*k, m*k-1, . . . (m-1)*k + 1] 이다. n이 범위 안에 들어오면 처음으로 k개의 숫자를 내림차순해서 k개의 내림차순을 만든다. 이제 k+1~n까지 정렬해서 m-1개의 오름차순 수열을 만들어야한다. 여기서부터 너무..
2023. 8. 27.