일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 입출력 패턴
- c++
- 이분그래프
- 구조체와 클래스의 공통점 및 차이점
- 연결요소
- UI한글변경
- iOS14
- 2557
- k-eta
- 자료구조
- 프레임워크와 라이브러리의 차이
- Django의 편의성
- 알고리즘 공부방법
- double ended queue
- EOF
- Django란
- 입/출력
- 매크로
- vscode
- correlation coefficient
- 시간복잡도
- scanf
- 표준 입출력
- string 함수
- string 메소드
- getline
- 장고란
- Django Nodejs 차이점
- 백준
- 엑셀
- Today
- Total
목록알고리즘 (188)
Storage Gonie
문자열 # 문자열 - 문자열은 아스키코드로 저장이 됨. # 아스키코드 - 문자 인코딩 방법 - 문자를 출력해보면 되므로 외울필요가 없다. - 숫자랑 글자랑 매치되는 테이블이 있어서, 저장할 때 숫자로 저장했다가 출력은 글자로 해주는 것으로 이해하면 됨. @ 예시 - '0' => ASCII코드값 : 48 - 'A' => ASCII코드값 : 65 - 'a' => ASCII코드값 : 97 - ASCII코드값 : 48 => '0' - ASCII코드값 : 0 => NULL printf("%c\n", 65); // 문자 'A'가 출력됨. printf("%c\n", 48); // 문자 '0'이 출력됨. # 알파벳 개수 문제 - https://www.acmicpc.net/problem/10808 # 알파벳 찾기 문제 ..
덱의 개념 # 덱이란 - Deque, Double-ended queue의 약자이다. - 양 끝에서만 자료를 넣고 양 끝에서 뺄 수 있는 자료구조 - 큐는 push, pop을 할 수 있는 위치가 한 방향으로 고정되어 있지만, 덱은 앞에서도 push, pop, 뒤에서도 push, pop이 모두 가능하다. - 중요한 자료구조는 맞지만, 덱의 특징을 이용해서 문제를 푸는 경우는 많지 않음. # 직접 구현하기 위해 필요한 요소 - 앞, 뒤에서 삭제 추가 연산이 일어나기 때문에 보통 이중 연결리스트로 구현한다고 함 # 덱의 연산 - push_front() : 덱의 앞에 자료를 넣는 연산 - pop_front() : 덱의 앞에서 자료를 빼는 연산 - push_back() : 덱의 뒤에 자료를 넣는 연산 - pop_b..
큐의 개념 # 큐는 무엇인가 - 한쪽 끝에서만 자료를 넣고 다른 한쪽 끝에서만 뺄 수 있는 자료구조 - 먼저 넣은 것이 가장 먼저 나오기 때문에 First In First Out(FIFO) 라고도 한다. - push와 pop을 진행하다보면 begin변수의 값은 계속 증가만 하기 때문에 배열이 꽉 차지 않은 상황임에도 더이상 데이터를 집어넣을 수 없는 상황이 발생한다. 이를 보완한 방법으로 '순환큐'라는 게 존재하는데 이는 심화과정이므로 나중에 공부하고 일단 아래 부분들만 알아두자. # 직접 구현하기 위해 필요한 요소 - 데이터를 저장할 '배열' (링크드리스트로 구현할 수도 있다고 함) - pop하면 나올 위치를 가리키는 'begin 변수' - push가면 들어갈 위치를 가리키는 'end 변수' # 큐의 ..
스택의 개념 # 스택이란 - 한쪽 끝에서만 자료를 넣고 뺄 수 있는 자료구조 - 마지막으로 넣은 것이 가장 먼저 나오기 때문에 LIFO(Last In First Out) 라고도 한다. - 가장 가까이에 있는 원소끼리 연산을 push, pop하여 해결되는 것은 O(1)이 걸린다는 특징이 있다. 이것이 스택의 특징. # 직접 구현하기 위해 필요한 요소 - 데이터를 저장할 '배열' - 다음에 삽입될 index의 위치, 혹은 들어있는 원소의 개수를 가리키는 'size 변수' # 스택의 연산 - push() : 스택의 맨 위에 자료를 넣음 - pop() : 스택의 맨 위에서 자료를 뺌 - top() : 스택의 맨 위에 위치한 자료를 읽어옴 - empty() : 스택이 비어있는지 아닌지를 알아봄 - size() :..
알고리즘, 자료구조 공부 가이드 # 알고리즘, 자료구조를 공부해야하는 이유 - 카카오, 라인, 구글, 스타트업 등 개발자가 성장할 수 있는 기업의 입사 관문이다. - 컴퓨터 과학 또는 컴퓨터 공학 전공자라면 기본 소양으로 여겨지는 부분이다. # 알고리즘 공부에 효과적인 방법 - 개념을 익히고 바로 문제를 풀어보는 것이 가장 효과적임. # 이를 위한 기본 커리큘럼 1. 2달 간 코드플러스 사이트에서 기초, 중급1, 중급2 강의를 수강한다. - 어떤 알고리즘과 자료구조가 존재하는지 익히고, 어떤 식으로 문제를 풀어나가는지에 대한 감을 얻는다. 2. 2달 간 알고리즘 문제해결전략 교재를 구매하여 읽는다.(2권부터 시작해서 1권까지) - https://book.algospot.com/ 3. 알고스팟 문제를 모두..
문제 풀이 # C++(직접구현) #include using namespace std; struct Stack{ // 필수적으로 필요한 멤버변수 int data[1000]; // 데이터 저장 -> 문자열을 저장하고 싶으면 string 타입으로 변경한 뒤, 함수들의 return 형을 조금 수정해주면 된다. int size; // 여러 연산을 위해 필요함 // 생성자 : 멤버변수의 초기화를 담당한다. 이것이 존재하지 않으면 경고가 뜸. Stack() { size = 0; } void push(int n) { data[size] = n; size += 1; } int pop() { if (size == 0) return -1; else{ size -= 1; // pop 할 때 데이터를 따로 삭제해주는 작업은 없..
# 구조체 정의 방법 - 구식 컴파일러 버전에서는 'struct' 앞에 'typedef'를 넣어줘야 한다.(신형의 경우 생략가능) - 구식 컴파일러 버전에서는 구조체 멤버변수를 선언할 때 초기화해줘야 한다.(신형의 경우 상관없음) struct Point2D{ int x; int y; }; struct Point2D{ int x; int y; void init(int x, int y) { this->x = x; this->y = y; } void printPoint2D() { cout
문제 풀이 # C++ #include using namespace std; int main() { ios_base::sync_with_stdio(false); int N = 0; cin >> N; for (int i = 0; i < N; i++) { for (int j = 0; j < N-i-1; j++) cout
문제 풀이 # C++ #include using namespace std; int main() { ios_base::sync_with_stdio(false); int N = 0; cin >> N; for (int i = 0; i < N; i++) { for (int j = 0; j < N-i-1; j++) cout