일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 인코더
- Rebase
- stl
- DP
- spring
- python3
- 안드로이드
- 프로그래머스
- 블로그개설
- 백준
- 스프링
- BFS
- retrofit
- git
- TensorFlow
- hackerrank
- Android
- 카카오인코더
- 프로그래밍
- 머신러닝
- 연결리스트
- Map
- 스프링프레임워크
- ADAS
- vue.js
- c++
- 스프링 프레임워크
- c
- Kotlin
- 백트래킹
- Today
- Total
목록Study/프로그래밍 개념정리 (6)
이것저것 공부한 기록
이름 그대로 n번째 원소를 찾아내는 일종의.. partial sort 만약 오름차순으로 정렬할 때의 4번째 원소를 찾겠다고 입력할 경우 4번째로 올 원소는 정확하게 4번째에 위치하지만 앞 뒤 원소들은 정렬되어 있지 않은 상태. sort에서 nth_element로 바꿀경우 실행시간이 2/3으로 줄어들었음.
1. Set - 그냥 큰 상자 안에 모든 원소들을 쑤셔 넣은 것이라고 보면 됨. - 원소가 '있나/없나'를 판별할 때 쓰기 좋음 #include using namespace std ; Library : set Namespace : std //선언 set s ; //insert s.insert(10) ; s.insert(20) ; s.insert(50) ; s.insert(40) ; s.insert(40) ; Set 안에는 중복된 원소들이 없다. 또한, iterator를 사용하여 순서대로 출력을 수행할 경우, 크기대로 정렬되어 출력된다. for (auto itr = s.begin(); itr != s.end(); ++itr) cout
현재 문자의 종류 알아보는 함수 ctype.h에 포함 isalpha(char a) a가 영문 알파벳인지 검사 isupper(char a) a가 대문자 알파벳인지 검사 islower(char a) a가 소문자 알파벳인지 검사 isascii(char a) a가 7비트 ascii문자인지 검사 isdigit(char a) a가 숫자인지 검사 isxdigit(char a) a가 16진수 숫자인지 검사( 0~9, a~f, A~F ) isalnum(char a) a가 알파벳과 숫자인지 검사
거의 push랑 참조밖에 안 쓰는거 같긴 한데... 메모리가 연속하게 저장되기 때문에, []나 at으로 읽는 속도는 빠르다 또한 다른 표준 컨테이너들과 비교할 때, 컨테이너의 끝에 새로운 원소를 삽입/삭제하는 시간이 효율적이다. 그러나 때문에 끝이 아닌 중간에 삽입하는 작업은 느리게 동작한다. 원소를 추가해서 size의 크기가 capacity를 넘어가버리면 내부적으로 추가적인 공간을 할당한다. 추가적으로 할당되는 공간은 거의 현재 벡터의 capacity만큼 할당된다 -> 즉, 전체 할당 크기가 이전의 두배가 됨. 벡터의 capacity를 확장하는 것 = 메모리를 새로 할당, 벡터의 내용을 복사 이기 때문에 꽤 시간이 걸림. 많은 원소를 추가해야 하는 경우 vector::reserve를 사용하여 capac..
일반적으로, scanf랑 cin 1. 공백을 포함하여 한 줄을 통째로 입력받아야 하는 경우 string s; getline(cin, s); 2. 그리고 입력의 크기가 매우 큰 경우, fgets사용. char s[1000]; fgets(s, 1000, stdin); string line(str); fgets(char *s, int num, FILE *ptr)의 형태. 3. 한 글자씩 받고자 할 때 scanf("%1d",&a); 4. EOF까지 입력받기 while (scanf("%d", &n) != EOF); while (scanf("%d", &n) != -1); while (~scanf("%d", &n)) 3번째 줄 ~의 의미 -1은 2진수로 표현하면 1111 1111 ... 1111임. 근데 여기에 ~를..
사용 목적 - 변수를 상수처럼 사용하고자 할 때 - 상수화가 보장되어야 할 때 (가독성도 포함해서) - 초기 설정한 상수값을 절대 변경할 수 없음. const int num = 10 ; -> 변수 num의 상수화 const int *ptr1 = &val1 ; ptr1 = 20 ; //에러 ptr1 = &anotherPoint ; //에러 아님 -> ptr1을 통한 val1값 변경이 불가능하게 한다. -> 주소는 변경 가능. int * const ptr2 = &val2 ; ptr2 = &anotherPoint ; // 에러 *ptr2 = 25000 ; //에러 아님 -> ptr2포인터 자체가 상수화. -> 주소 변경 불가능. -> ptr2을 통한 val2의 값 변경이 가능. const int * const..