본문 바로가기
반응형
[문제모음] Softeer(C++): Lv1 총 11문제(2025.02.07 기준) 1번-11번문제더보기문제문제 링크해설주행거리 비교하기(6253)문제풀이근무 시간(6254)문제풀이A+B(6295)문제풀이나무 심기(7353)문제풀이위험한 효도(7368)문제풀이연탄 배달의 시작(7626)문제풀이Tren del Fin del Mundo(7695)문제풀이개표(7698)문제풀이효도의 시작(7724)문제풀이나무 출력(9655)문제풀이메리 크리스마스(9660)문제풀이 2025. 1. 11.
[PCCP] 자료구조 - 집합 1. 이론- 집합(set): 순서와 중복이 없는 원소를 갖는 자료구조- 집합 종류: 유한집합, 무한집합, 공집합, 상호배타적 집합- 상호배타적 집합: 교집합이 없는 집합 관계- 상호배타적 집합 활용분야: 이미지 분할, 도로네트워크 교차로, 최소신장트리의 사이클 확인, 게임개발시 물체 충돌 문제, 클러스터링 방지- 집합의 연산: 합치기, 탐색- 집합 표현: 배열을 활용한 트리 사용. 배열의 인덱스는 자신, 배열값은 부모 노드를 의미. 루트노드는 인덱스와 값이 동일- 루트 노드의 개수는 집합의 개수- Union-Find 알고리즘: union(합치기), find(탐색).- find 연산: 특정 노드의 루트 노드가 무엇인지 탐색하는 방법. 특정 노드가 같은 집합인지 확인. 재귀로 구현+) find 연산 비용은 .. 2024. 12. 14.
[PCCP] 자료구조 - 해시 1. 이론- 해시(hash): 해시함수를 사용해서 변환한 값을 인덱스로 삼아 키와 값을 저장해서 빠른 데이터 탐색을 제공하는 자료구조- 해시 특징: 단방향 동작(키를 통한 값 탐색만 가능). 키가 값의 인덱스이므로 값을 찾기 위한 탐색과정이 없음. 값을 인덱스로 사용하려면 변환 과정이 필요- 해시테이블: 키와 값이 저장되어 있는 공간- 버킷: 해시테이블의 각 데이터- 해시 ADT:  (시간복잡도)- 임의 접근(탐색): O(1)- 삽입:- 삭제: (선택시 고려할 점)- 단방향 검색이지만 빠른 검색이 필요한 경우 (해시함수 구현시 고려사항)- 해시함수 변환값은 해시테이블의 크기보다 작아야함- 변환값의 충돌이 최대한 적어야함+) 충돌: 서로 다른 두 키에 값을 적용시 동일한 결과를 의미 (주요 해시함수)- 나.. 2024. 12. 14.
[PCCP] 자료구조 - 큐 1. 이론- 큐(queue): 먼저 들어간 데이터가 먼저 나오는 자료구조(FIFO: First In First Out)- 삽입 연산을 enqueue, 꺼내는 연산을 dequeue- 큐 ADT: push(삽입), pop(꺼내기), isFull(), isEmpty(), front(오래된 삽입 데이터), rear(최근 삽입 데이터), data(데이터 저장공간)- 큐 활용 분야: 작업 대기열, 로드밸런서, 이벤트 처리 (시간복잡도)- 임의 접근: - 삽입: - 삭제:  (선택시 고려할 점)-   2. 프로그램 언어별 문법- 큐 선언 및 초기화- 큐 접근: 맨 앞(front), 맨 뒤(rear)- 큐 제어: 삽입(push), 삭제(pop)   더보기#include /* 큐 생성 및 초기화 */std::queue .. 2024. 12. 14.
[PCCP] 자료구조 - 스택 1. 이론- 스택(stack): 먼저 입력한 데이터를 제일 나중에 꺼냄(FILO: First In Last Out)- 삽입 연산을 push, 꺼내는 연산을 pop- 스택 ADT: 삽입(push), 꺼내기/삭제(pop), isFull(), isEmpty(), top(최근 데이터 인덱스), data(데이터 저장공간) (시간복잡도)- - 삽입: O(1)- 삭제: O(1) (선택시 고려할 점)- 최근에 삽입한 데이터를 자주 사용하는 경우-  2. 프로그램 언어별 문법- 스택 선언 및 초기화- 스택 접근(top)- 스택 제어: 삽입(push), 삭제(pop)   더보기#include /* 스택 생성 및 초기화 */stack st;/* 삽입 */st.push(값); // 요소 삽입/* 삭제 */st.pop(); /.. 2024. 12. 14.
[PCCP] 자료구조 - 링크드리스트 1. 이론  2. 프로그램 언어별 문법더보기#include #include /* 1차원 동적배열 선언 및 초기화 */int* arr1 = (int*)malloc(sizeof(int) * 5);if (arr1 == NULL){ printf("[error]: malloc error\n");} /* 2차원 동적 배열 선언 및 초기화 */// 동적배열 해제free(arr1); (단방향 리스트: forward_list)더보기#include // 단방향 리스트 선언 및 초기화forward_list list1;forward_list list2(7); // 크기가 7forward_list list3(10, 5); // 크기가 10, 초기값은 5forward_list list4 = {1,2,3,4,5};// .. 2024. 12. 14.
[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.
[PCCP] 환경설정 1. C언어1) Windows: Visual Studio  2) MacOS: gcc + vim + Make  3) 환경설정 확인/* main.c */#include int main(int argc, char** argv) { printf("Hello C!\n"); return 0;}$gcc main main.c$ ./main 2. C++1) Windows: Visual Studio  2) MacOS: g++ + vim + Make 3) 환경설정 확인/* main.cpp */#include int main(int argc, char** argv) { std::cout $ gcc -o main main.cpp$ ./main 3. C#1) Windows: Visual Studio 2) 환경설정 확인.. 2024. 12. 14.
[Roadmap] 2. Algorithm 1. Data Structure && Algorithm- [교재] Introduction To Algorithm- [교재] 이것이 자료구조+알고리즘이다 with C 언어- [교재] 코딩 테스트를 위한 자료 구조와 알고리즘 with C++- [강의] C로 쉽게 풀어쓴 자료구조 2. Coding Test- [교재] 프로그래밍 대회에서 배우는 알고리즘 문제해결 전략- [교재] 코딩 테스트 합격자 되기(파이썬 편)- [교재] 코딩 테스트 합격자 되기(C++)- [교재] 바킹독의 실전 알고리즘(C++)- [강의] 바킹독의 실전 알고리즘 강의(C++)- [강의] 이것이 취업을 위한 코딩 테스트다 with 파이썬- [강의] 코딩테스트 필수 알고리즘(python)- [사이트] 백준 온라인 저지 / Solved.ac- .. 2024. 10. 5.
[Python] 자료구조: 리스트, 딕셔너리, 튜플, 셋 1. 리스트1.1 리스트란?- 리스트는 값들의 묶음 1.2 메서드# 리스트 생성data = list()data = []# 리스트 초기화data = [val1, ...]data = [val1] * ndata = [i for i in range(n)]# 값 확인data[index]# 값 변경data[index] = val# 값 추가:data.append(val)# 값 추가: 리스트 괄호 해제 후 결합data.extend(val)# 값 삭제del data[index]# 값 제거data.remove(val)2. 딕셔너리2.1 딕셔너리란?- 키 중복 불가- 키와 값의 쌍으로 이루어진 데이터들의 집합2.2 메서드 # 딕셔너리 생성data = dict()data = {}# 딕셔너리 초기화data = {"key1": .. 2024. 8. 13.
반응형