목록Programming (26)
지우너
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성을 보고 정리한 글입니다.전체 내용을 정리하지 않았으며, 필요한 내용이 있다면 해당 강의를 참고하시기를 추천드립니다. Java에서 Thread를 만드는 방법은 "①Thread 클래스 상속받기 ②Runnable 인터페이스 구현하기"가 있다.실무에서는 주로 ②의 방법을 선택한다. 자바는 단일 상속만 허용하기 때문에 Thread를 상속 받으면 다른 클래스를 상속 받을 수 없다. Java에서 제공하는 기본 객체 Thread는 생성자에서 매개변수로 Runnable을 받는다. 스레드(Thread)와 해당 스레드가 실행할 작업(Runnable)이 분리되어 있다. package thread.start;public class MyRunnable implements R..
개념set은 treeset 자료구조로 되어 있다. treeset은 균형잡힌 이진트리 구조로 데이터를 관리해준다.삽입, 삭제, 탐색 등 모든 함수의 시간복잡도가 전부$O(logN)$중복이 허용되지 않음 균형잡힌 이진 트리 (Balanced Binary Tree): 균형잡힌 이진 트리는 각 노드의 왼쪽 서브트리와 오른쪽 서브트리 높이 차이가 최대 1인 이진 트리균형잡힌 트리는 항상 높이 균형을 유지하기 때문에 트리의 깊이가 상대적으로 작다 → 탐색, 삽입, 삭제 등의 연산이 빠르게 수행됨ex) AVL 트리, 레드-블랙 트리 등 언제 쓰는가지금까지 살펴본 숫자들 중 특정 숫자 k보다 같거나 큰 숫자를 빠르게 구하는 경우지금까지 살펴본 숫자들 중 최댓값을 계속 구하는 경우지금까지 살펴본 숫자들 중 최댓값을 계속..
사용법+는 해당 키들을 동시에 눌러야 함"" tab은 따옴표 안에 있는 문자를 입력 후 tab을 누르는 것(Enter를 대신 눌러도 된다) [최근 파일 보기] Command+E [한 줄 이동] Command+Shift+↑(↓)현재 줄에 있는 코드를 옮김 [함수 단위 이동] Ctrl + Shift + ↑(↓)커서를 다음 함수가 있는 곳으로 이동시킴 [main함수] "psvm" tab || "main" tab[상수] "psfi" tabpublic static final int [출력] "sout" tabsout을 입력 후 tab을 누르면 system.out.println 이 자동으로 완성된다. [출력] "soutv" tab || "변수명.soutv" tabPrints a value to System.outs..
클래스란?두 학생의 국어, 영어, 수학 점수를 저장하기 위해서는int kor1, eng1, math1;int kor2, eng2, math2;이렇게 6개의 변수가 필요하다. 학생이 100명일 경우 변수의 이름 및 갯수(몇 번째 학생의 것인지)가 헷갈려지는 단점도 존재한다. 객체지향언어에서는 이런 정보들을 객체 단위로 표현하는 것을 더 선호하는 것 같다. 위의 경우는 국어, 영어, 수학 점수가 한 학생이 가진 정보이다. 또 다른 경우를 떠올리면 사과라는 객체를 표현하기 위해 색, 무게, 브릭스(=단맛의 정도), 수확 시기 등을 하나의 사과에 담긴 정보로 묶을 수 있다. 이렇게 하나의 객체에 담긴 여러 정보를 관리하기 위한 것이 클래스이다. 클래스 만들기class Student { public: ..
#include 필수!숫자 배열 정렬n개의 숫자 배열이 주어질 때 오름차순(1, 2, 3)/내림차순(3, 2, 1)으로 정렬하는 방법 sort(arr, arr+n);int main() { int n; cin >> n; int* arr= new int[n]; for (int i=0;i> arr[i]; } // 오름차순 정렬 sort(arr, arr+n); // 일반적으로는 평균 시간복잡도가 O(NlgN)인 퀵 정렬이 많이 이용된다. // 다만 최근 Python, Java 등의 언어에서의 sort 함수는 Tim Sort로 이루어져 있다고 한다 sort(arr, arr+n); for (int i=0;i()); sort(arr, arr+n, great..
vector.size()나 string.length()는 자주 써서 괜찮은데, 배열 길이는 정해져 있어서 숫자로 적고 말면 되니까 잘 안 쓰게 됐다...무의식 중에 arr.size(), arr.length() 적었다가 에러가 날 때가 많아서 깔끔하게 적고 싶을 때 쓰려고 정리한다!요약// arrSizeint arr[6] = {1, 2, 3, 4, 5, 6};int arrSize = sizeof(arr)/sizeof(int); //sizeof(array_name)/sizeof(type)for(int i=0; i vec(6);int vecSize = vec.size();for(int i=0; i 설명string이나 vector는 클래스라서 클래스의 멤버변수로 size, length가 제공되지만, arr는 c..