전체 글 223

알고리즘 자주 사용 함수(C++)(알고리즘)(fill, memset, memcpy,sort, unique, stable_sort)

위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의링크 fill()과 memset() fill()과 memset()은 배열을 초기화 할 때 쓰입니다 fill() fill()은 O(n)의 시간복잡도를 가지며 fill(시작값, 끝값, 초기화하는값)로 값을 초기화합니다. 모든 값을 기반으로 초기화가 가능합니다. void fill (ForwardIterator first, ForwardIterator last, const T& val); fill()로 배열의 값을 초기화한다고 했을 때 배열의 모든 값이 아닌 일부값을 초기화하는 경우도 있지만 보통은 전체를 초기화 합..

이터레이터(C++)(알고리즘)

위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의링크 이터레이터란 이터레이터는 컨테이너에 저장되어 있는 요소의 주소를 가리키는 개체를 말하며 포인터를 일반화한 것을 말합니다. vector, map 등 각각 다르게 구현된 컨테이너들을 일반화된 이터레이터를 통해 쉽게 순회할 수 있습니다. 바로는 주소값을 반환하지는 못하며 &*를 통해 한단계 더 거쳐서 가리키는 해당 요소의 주소값을 반환할 수 있습니다. #include using namespace std; vector v; int main(){ for(int i = 1; i

pair와 tuple(C++)(알고리즘) (find,find_if, 람다식 캡쳐절)

위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의링크 pair와 tuple pair와 tuple은 타입이나 자료구조는 아닙니다. C++에서 제공하는 utility 라이브러리 헤더의 템플릿 클래스이며 자주 사용되기 때문에 알아보겠습니다. pair는 first와 second 라는 멤버변수를 가지는 클래스입니다. 두가지 값을 담아야 할 때 씁니다. tuple은 세가지 이상의 값을 담을 때 씁니다. 여기서 tie는 pair이나 tuple로부터 값을 끄집어낼 때 사용되는 함수입니다. #include using namespace std; pair pi; tuple t..

string 사용법(C++)(알고리즘)

위 글은 큰돌의 터전 님의 강의자료를 참조해서 정리하고 제가 알고리즘을 풀면서 더 추가적으로 사용할 만한 내용들을 정리한 글입니다. 알고리즘 풀이 강의로 큰돌의 터전님의 강의 강력 추천드립니다. 강의 링크 알고리즘 풀 때 string을 써야하는 이유 입력이 한글이라면 코딩 테스트 특성상 영어만을 입력으로 주지 않을 수가 있다. 만약 char 형 배열을 사용한다면 영어 입력인 경우 문제가 없지만 한글인 경우 한글은 한 글자당 3바이트라서 원하는 출력을 유도할 수 없을 수 있다. string에서 많이 사용하는 메서드 모음 #include using namespace std; int main() { string a = "love is"; a += " pain!"; a.pop_back(); cout

read 함수

read 함수원형#include ssize_t read(int fd, void *buf, size_t count);인자fd : 읽을 파일의 파일 디스크립터 buf : 읽어 드릴 데이터를 저장할 버퍼count : 읽어 들일 데이터의 최대 길이(buf)의 길이보다 길어서는 안됨)리턴값 : 실제로 읽은 데이터의 byte 수 일반적으로 count와 같은 값을 리턴 하지만 endof에 도달하거나, socket통신에서 수신할 데이터가 아직 도달하지 않았을때, socket이 close했을때0 : 더 이상 읽을 파일이 없을 경우-1 : 오류가 발생했을 경우. 상세한 에러내용은 errno에 기록된다.errno종류 EAGAIN : file을 open할 때에 O_NONBLOCK flag이 설정되었으며, 현재 읽을 데이터가 ..

파일디스크립터에 대하여(간단한 설명)

안녕하세요 조신입니다 오늘은 파일 디스크립터에 대해 이야기해보고 다음으로는 42서울 과제에서 get_next_line의 openmax값을 이용해 디펜스 하는 방법을 알려드리고자 합니다. 파일 디스크립터란 무엇인가 간단히 말해서 파일을 표현하는 번호입니다. 조금 더 자세히 말하자면 파일의 위치를 가리키는 곳을 가리키는 번호라고 생각하시면 되겠습니다. 파일 디스크립터 생성 open, creat, socket, accept 등의 함수로 open하면 fd라는 숫자값이 생깁니다. 이 값은 각 프로세스마다 독립적이며 프로세스마다 다른 파일 디스크립터 태이블을 가지고 있습니다. 배경 리눅스와 유닉스에서는 시스템을 전부 파일로 처리하여 관리합니다. (하드웨어 등 모든 장치도 포함합니다.) 사용 이유 시스템에서 프로세서..

컴파일에 대하여(간략설명)

안녕하세요 조신입니다. 7기 1차인 신입 카댓이라 많이 부족하겠지만 공부했던 것들을 공유하는 글로 정리한 글을 공유해보고자 합니다. 컴파일이란? 일단 많은 분들이 컴파일이란 무엇인가 궁금해 하십니다. 컴파일을 한마디로 말해서 소스코드를 컴퓨터가 이해할 수 있는 어셈블리어로 변환하는 과정입니다. 많은 분들이 그냥 gcc를 사용하시지만 실제로 저희가 사용하는 gcc는 컴파일만 해주는 것이 아니라 전처리, 컴파일, 어셈블리, 링킹까지 한번에 해서 실행파일을 만들어주는 엄청난 드라이버입니다. (c++에서는 g++입니다.) 전처리과정이 뭘까요? #include 로 선언된 헤더파일이나 #define 으로 정의된 매크로 등을 실제 코드로 바뀌게 됩니다. 이때 전처리과정은 텍스트들이 치환만 됩니다!(연산은 일어나지 않..

UML다이어그램

시작하며 UML의 이해 UML의 구성요소 UML 모델링의 이해(★★★) 다이어그램의 종류 정적 모델링 도구(★★★★★) 동적 모델링 도구(★★★) UML 모델링 절차 UML 클래스 관계 시작하며 안녕하세요 42서울 카뎃 7기 조신입니다. 오늘은 코드를 짜기 전에 많은 개발자들이 사용하는 다이어그램 그리곤 하는데요. 그에 대한 표준에 대한 이해를 위한 글을 작성해보고자 합니다. UML의 이해 모델이란 현실을 단순화(기사화)를 통해서 개발할 시스템에 대한 계획이나 구상에 대한 내용을 나타낸 것이다. 모델링 방법론 모델링을 하는 방법은 크게 3가지로 나뉘는데 OMT : 시스템이 요구하는 객체를 완벽하게 기술하는 방법으로 객체 모델링 동적 모델링 기능 모델링의 종류가 있다. 객체 모델링 : 시스템에서 필요한 객..

728x90