728x90 반응형 시간 복잡도10 [백준/Python] 1874 스택 수열 문제: https://www.acmicpc.net/problem/1874 사용 알고리즘: 스택 입력첫 줄에 n (1 둘째 줄부터 n 개의 줄에는 수열을 이루는 1 이상 n 이하의 정수가 하나씩 순서대로 출력됨. (같은 정수 2번 나옴x) 1 부터 n 까지의 숫자를 스택에 넣고 빼면서 입력으로 주어진 수열을 만드는 문제단, 스택에 숫자를 넣을 때는 무조건 오름차순으로 넣어야 함 -> 1 부터 n 까지 차례로 넣어야 함 1. 스택에 숫자를 넣고 빼면서 주어진 수열을 만들 수 있는 경우스택에 숫자를 넣을 때는 '+' 출력스택에서 숫자를 뺄 때는 '-' 출력2. 스택에 숫자를 넣고 빼면서 주어진 수열을 만들 수 없는 경우에는 'NO' 출력 수열 만들기 파이썬은 스택 자료구조를 제공하지 않음! -> 만들.. 2024. 7. 26. [Algorithm/알고리즘] 누적합 알고리즘 Prefix Sum A = [1, 2, 3, 4, 5]# 부분합 = [1, 3, 6, 10, 15] 위와 같은 배열 A 가 있다. 이 배열의 각 부분합을 구해야 할 때 구할 수 있는 방법이 2가지 있다. 1. 각 인덱스를 반복해서 돌면서 구하기 ans = 0for i in range(start, end+1) ans += A[i]위 코드의 시간 복잡도는 O(N) 이며, 각 부분합을 구하기 위해서는 배열의 크기만큼 위 코드를 반복해야 한다. ans = 0for j in range(배열의 크기): for i in range(start, end+1) ans += A[i] 그러므로 총 시간 복잡도는 O(NM) 이 된다. (M: 배열의 크기인 임의의 수) 2. 누적 합 누적 합 아이디어는 배열 A 에 들어있는 값이 바뀌.. 2024. 7. 9. 이전 1 2 3 다음 728x90 반응형