Song[coding diary index]

Song 배열에 코딩 흔적 남겨두기

코딩 3

백준 11003번 최솟값 찾기(c++)

11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 문제분석 문제 자체는 매우 간단한 모습을 볼 수 있다. N개의 수가 주어지고, L이라는 숫자가 주어진다. 이 떄 D(i) = N개의 수에서 i - L + 1번째부터 i번째 사이의 최솟값을 말한다. 원소의 index가 i> N >> L; vector vec(N + 1); deque window; // 슬라이딩 윈도우 for (int i = 1; i > vec[i]; } for (int i = 1;..

알고리즘 2023.09.13

백준 2018번 수들의 합5 (C++)

2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net 문제 분석 N이라는 숫자를 '연속'된 자연수의 합으로 표현하고, 이 조합의 개수를 구하는 문제이다. 주목해야 할 점은 3가지라고 생각한다. 1, 연속된 자연수. 2. 메모리의 크기.(32MB) 3. N의 크기 1. 연속된 자연수 - 자연수가 1개 혹은 여러 개가 되어도 연속된 자연수라면 조합에 포함이 된다. 즉, N이라는 숫자의 연속된 자연수는 최소 1개 이상이 될 것이다. 이 외의 연속된 자연수를 찾기 위해서는, 구간 합의 개념을 이용하면..

알고리즘 2023.08.29

배열(array) vs 리스트(list)

배열- 인덱스를 사용하여 원소에 바로 접근 가능하다- 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. 삭제하려면 주변 인덱스 값을 옮겨야 한다.- 배열의 크기는 선언할떄 지정할 수 있으며, 한 번 선언하면 크기를 늘리거나 줄일 수 있다.- 구조가 간단하다. (코테 사용) 리스트- 인덱스가 없어서 값에 접근하려면, head 포인터부터 순서대로 접근. 값에 접근 속도가 느리다.- 포인터로 연결되어 있기에, 데이터 삽입이나 삭제하는 연산속다가 빠르다.- 선언할 때, 크기 지정이 필요 없다. 크기가 유동적인 데이터를 다룰 때 적절하다.- 포인터를 저장할 공간이 필요해 구조가 복잡하다.

알고리즘 2023.08.28
LIST