본문 바로가기
반응형
[PCCP] Lv2: N^2 배열자르기(87390) 해설 문제- 문제 링크: 배열자르기 해설- 자료구조: - 시간복잡도:  (풀이과정)1) 2) 3) 4)  코드(C언어)solution 1)더보기solution 1#include #include #include int* solution(int n, long long left, long long right) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. int* answer = (int*)malloc(sizeof(int)*(right-left+1)); int quo = 0; int rem = 0; for (long long i = 0; i = rem) answer[i] = quo + 1; .. 2024. 12. 23.
[PCCP] Lv0: 배열의 평균값(120817) 해설 문제- 문제 링크: 배열의 평균값 해설- 자료구조: - 시간복잡도: (풀이과정) 1) 배열의 합을 구함2) 배열의 길이를 구함3) 배열의 합을 배열의 길이로 나누어 결과에 저장4) 결과 반환 코드(C언어)더보기#include #include #include // numbers_len은 배열 numbers의 길이입니다.double solution(int numbers[], size_t numbers_len) { double answer = 0; double sum = 0; for (int i = 0; i  (C++)더보기#include #include using namespace std;double solution(vector numbers) { double answer = 0.. 2024. 12. 23.
[PCCP] Lv2: 방문 길이(49994) 해설 문제- 문제 링크: 방문 길이 해설- 자료구조: - 시간복잡도:  (풀이과정)- 중복 경로 처리- 음수 좌표 처리- 기능별 함수 구현1) 2) 3) 4)  코드(C언어)solution 1)더보기solution 1#includesolution 2)더보기#includesolution 3)더보기#include (C++)solution 1)- N: dirs의 길이- dirs의 길이만큼 순회: O(N)더보기#include using namespace std;// 특정 좌표에서 특정 방향으로 이동한 적이 있는지 체크bool visited[11][11][4];// 상하좌우로 좌표를 이동할 때 필요한 좌표 오프셋 배열int dx[] = {0, 1, 0, -1};int dy[] = {-1, 0, 1, 0};// 각 문자.. 2024. 12. 23.
[PCCP] Lv2: 행렬의 곱셈(12949) 해설 문제- 문제 링크: 행렬의 곱셈 해설- 자료구조: - 시간복잡도:  (풀이과정)1) 2) 3) 4)  코드(C언어)  (C++) solution 1)- N: 행 혹은 열의 길이- r1는 arr1의 행의 수, c1는 arr1의 열의 수- r2는 arr2의 행의 수, c2는 arr2의 열의 수- 총 r1 * c1 * c2만큼 연산- 최종 시간 복잡도: O(N^3)더보기#include #include using namespace std;vector> solution(vector> arr1, vector> arr2) { // 최종 행렬 곱의 결과를 저장할 벡터 선언 vector> answer; // arr1과 arr2의 행렬 곱을 수행했을 때 최종 행렬의 크기만큼 공간 할당 answ.. 2024. 12. 23.
[PCCP] Lv1: 실패율(42889) 해설 문제- 문제 링크: 실패율 해설- 자료구조: - 시간복잡도:  (풀이과정)1) 2) 3) 4)  코드(C언어)solution 1)  solution 2) solution 3)  (C++)solution 1)- N: 스테이지 개수- M: stages의 길이- 각 스테이지의 인원을 기준으로 특정 스테이지에서 실패한 인원수와 각 스테이지에 도전한 적이 있는 인원수를 구하는 과정: O(N*M)- 이후 실패율을 구할 떄 시간 복잡도: O(N)- 이를 정렬할 때 시간 복잡도: O(NlogN)- 최종 시간 복잡도: O(N*M + NlogN)더보기#include #include using namespace std;// 문제에서 요구하는 조건대로 실패율을 정렬하는 함수bool compare(pari& a, pair& b.. 2024. 12. 23.
[PCCP] 자료구조 - 배열 1. 이론- 배열: 동일한 타입의 데이터를 그룹화하여 관리. 연속된 메모리 할당. 인덱스와 값을 일대일 대응해 관리하는 자료구조- 특징: 임의 접근으로 O(1)에 탐색 가능 (시간복잡도)- 임의 접근: O(1)- 삽입: 맨 앞 O(N), 중간 O(N), 맨 뒤 O(1)- 삭제: 맨 뒤 O(1) (선택시 고려할 점)- 할당 가능한 메모리 크기 확인: (1차원) 1,000만개/(2차원) 3000X3000 개- 중간에 데이터 삽입 횟수 여부 2. 프로그램 언어별 문법- 배열 선언 및 초기화(1차원/2차원)- 삽입(맨앞, 중간, 맨뒤) / 삭제(맨앞, 중간, 맨뒤) / 변경 / 탐색(조회)- 크기 더보기// 1차원 배열 선언 및 초기화int arr1[10];int arr2[3] = {1, 2, 3};// 값 변.. 2024. 12. 14.
[C++ 마스터] Day 8: 배열과 문자열 배열 (Arrays)배열은 동일한 데이터 타입의 집합을 저장할 수 있는 연속된 메모리 블록입니다. 배열의 각 요소는 인덱스를 사용하여 접근할 수 있습니다. 1. 배열 선언과 초기화배열을 선언하고 초기화하는 방법은 다음과 같습니다:int numbers[5]; // 5개의 정수형 요소를 가지는 배열 선언int numbers[5] = {1, 2, 3, 4, 5}; // 배열 초기화 2. 배열 요소 접근배열의 각 요소는 인덱스를 사용하여 접근할 수 있습니다. 배열의 인덱스는 0부터 시작합니다.cout  3. 배열의 크기배열의 크기는 sizeof 연산자를 사용하여 구할 수 있습니다.int size = sizeof(numbers) / sizeof(numbers[0]);cout  4. 다차원 배열다차원 배열은 배열의.. 2024. 8. 1.
[C++로 배우는 알고리즘과 자료구조] Day 2: 배열과 문자열 배열 (Array)배열은 동일한 타입의 요소들이 연속적으로 저장된 자료구조입니다. 배열은 고정된 크기를 가지며, 인덱스를 사용하여 요소에 접근할 수 있습니다. 배열은 C++에서 가장 기본적인 자료구조 중 하나입니다.배열의 특징:고정된 크기: 배열의 크기는 생성 시 결정되며, 변경할 수 없습니다.빠른 접근 속도: 인덱스를 사용하여 O(1) 시간 복잡도로 요소에 접근할 수 있습니다.연속된 메모리 공간: 배열은 연속된 메모리 공간에 저장됩니다.배열 예제#include int main() { // 배열 선언 및 초기화 int arr[5] = {1, 2, 3, 4, 5}; // 배열의 크기 int size = sizeof(arr) / sizeof(arr[0]); // 배열의 요소 출력 .. 2024. 8. 1.
[자료구조] 배열 배열이란?- 같은 자료형의 값들의 묶음으로 연속적인 메모리를 사용- 조회시 인덱스를 이용여 속도가 빠름- 메모리 공간을 사전 할당하므로 공간 이상의 값을 저장시 메모리 재할당 필요- 접근 시간 복잡도: O(1)- 탐색 시간 복잡도: O(N)- 삽입/삭제 시간 복잡도: O(N)배열 ADT배열 구조배열 조회배열 추가배열 삭제 void insert()void remove() 프로그램 언어별 메서드- C: 동일한 자료형의 묶음/* 배열 선언 및 초기화 */type arr[size];type arr[size] = {val1, ...};/* 2차원 배열 선언 및 초기화 */type arr[size][size];type arr[size][size] = {{val1, ...}, {val2, ...}};/* 동적배열 할.. 2024. 7. 19.
[코딩테스트] 배열 / 연결리스트 배열- 배열: 같은 타입의 원소들을 효율적으로 관리하기 위한 기본 자료형- 연속된 메모리를 이용한 자료구조- 탐색: O(1), 맨 뒤 삽입: O(1), 맨 앞/중간 삽입: O(N)- 배열 선택시 고려할점: 할당 가능한 메모리 크기 확인/중간 데이터 삽입 횟수 확인 배열 다루기#include int main(int argc, char** argv) { /** 배열 선언 및 초기화 * 배열 선언: type arr_name[size]; * 배열 초기화(기본값은 0): type arr_name[size] = {val1, ...}; */ int arr1[] = {1, 2, 3, 4, 5}; int arr2[5] = {1, 3, 4}; // 나머지는 0 int.. 2024. 7. 9.
반응형