분류 전체보기

    [Algorithm] STL vector

    STL vector -정의: vector 자료구조는 배열과 거의 동일한 기능을 수행하는 자료구조로, 배열과 마찬가지로 원소가 메모리에 연속하게 저장되어 있기 때문에 배열과 마찬가지로 인덱스로 원소에 O(1)에 접근할 수 있음 -특징: 원소가 연속하게 저장되므로 [] 연산자 또는 at 으로 읽기에는 빠르지만 insert(), erase(), push_back() 등은 비효율적으로 동작한다. -함수: http://www.cplusplus.com/reference/vector/vector/ -주의할 점 (1) size()의 반환 값은 unsigned int vector v1 = {1,2,3}; for(int i=0; i

    [C++] 범위기반 for문(ranged-based for statement)

    범위기반 for문(ranged-based for statement) for (element_declaration : array) statement 루프는 각 array의 요소를 반복하여 element_declaration에 선언된 변수에 현재 배열 요소의 값을 할당. 최상의 결과를 얻으려면 element_declaration이 배열 요소와 같은 자료형이어야 함 참고 https://boycoding.tistory.com/210

    [Algorithm] 배열

    배열(Array) - 정의: 메모리 상에 원소를 연속하게 배치한 자료구조. - 특징 (1) 다른 자료구조와 달리 원소를 저장하는 것 이외에 추가적으로 소모되는 메모리의 양(=오버헤드)이 거의 없는 것이 장점 (2) 메모리 상에 원소가 연속해서 있어야 한다는 성질로 인해 cache hit rate(https://parksb.github.io/article/29.html)가 높다는 장점이 있으나 할당에 제약이 걸린다는 단점도 있음 (3) 배열의 길이: 따로 변수를 하나 두어 배열의 길이 저장. 따라서 배열의 길이를 알고 있다고 가정 - 시간 복잡도 (1) 임의의 위치에 있는 원소를 확인/변경: 원소는 연속하므로 O(1) (2) 원소를 끝에 추가: 배열의 길이를 알고 있으니 마지막 위치에 원소를 두기만 하면 ..

    [WEB]참고 사이트

    웹 프론트/백엔드 개발 과정 https://github.com/devJang/developer-roadmap 백엔드 과정 https://velog.io/@city7310/series/%EB%B0%B1%EC%97%94%EB%93%9C%EA%B0%80-%EC%9D%B4%EC%A0%95%EB%8F%84%EB%8A%94-%ED%95%B4%EC%A4%98%EC%95%BC-%ED%95%A8 프론트 과정 https://jbee.io/essay/for_junior_frontend_developer/ 백엔드 과정 http://www.codeok.net/%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85%EC%9D%84%20%EC%9C%84%ED%95%9C%20%EA%B8%B0%EC%88%A0%20%EC%8..

    [C++] switch-case 문

    switch(n){ case 1: //do sth break; case 2: //do sth break; default: //do sth }

    [Algorithm] 가장 큰 수 찾기

    #include int main(void) { int arr[5] = { 3, 5, 4, 6, 1 }; max = arr[0]; for(i = 1; i < 5; i++) if(max < arr[i]) max = arr[i]; printf("max: %d", max); return 0; }

    [Algorithm] bits/stdc++.h 헤더

    #include 해당 헤더안에 모든 표준 라이브러리가 들어가 있음 단 MSVC에는 해당 헤더가 존재하지 않는데 직접 경로에 헤더파일을 추가해놓으면 됨. 참고 https://blog.encrypted.gg/724?category=773649

    [Algorithm] cin/cout 시간초과 방지

    int main(void){ ios::sync_with_stdio(0); cin.tie(0); } scanf/printf와는 다르게 cin/cout에서는 입출력으로 인한 시간초과를 방지하기 위해 반드시 ios::sync_with_stdio(0), cin.tie(0)이라는 두 명령을 실행시켜야 합니다. 두 명령을 실행시키지 않으면 입/출력의 양이 많을 때 시간초과가 발생할 수 있습니다. -ios::sync_with_stdio(0) : C++ stream과 C stream의 sync를 끄는 명령. 따라서 해당 명령어를 입력할 경우 printf와 cout을 함께 쓰면 안됨. cout만 써야함. -cin.tie(0) : cin과 cout이 번갈아 나올 때 마다 flush를 하지 않도록 하는 명령. 채점 환경에서..