분류 전체보기 (231) 썸네일형 리스트형 배열(Array)과 연결 리스트(Linked List) 배열은 고정 길이이며 연속적으로 데이터를 저장합니다. 순차탐색에 용이하고 인덱스를 가지기 때문에 임의 접근이 가능하다는 장점이 있습니다.중간 삽입/삭제가 비효율적이고 고정 길이를 가지기 때문에 사용에 따라 메모리를 낭비할 수 있다는 단점이 있습니다. 연결 리스트는 노드기반이며 동적 크기를 가질 수 있습니다. 데이터가 연결 리스트에 추가/삭제된다면 이 전 노드와 연결만 해주면 되어 삽입/삭제가 편합니다. 필요한 만큼만 데이터를 사용하기 때문에 메모리를 효율적으로 사용가능합니다.데이터가 연속적으로 저장되는 것은 아니기 때문에 순회 시 배열보다 느릴 수 있습니다. 특정 요소를 접근할 때 인덱스가 없기 때문에 임의 접근이 어렵습니다. 배열은 데이터의 크기가 고정되어 있거나 빠른 접근이 필요한 경우에 적합합니.. 해시 테이블 해시 테이블은 Key와 Value 로 데이터를 저장하는 자료구조 입니다. 해시 테이블은 해시 함수를 사용합니다. 해시 함수를 이용하여 key 값을 해시 value 를 생성합니다. 생성된 해시 value 를 배열의 인덱스로 하여 그 공간에 value 를 저장합니다. 값을 찾을 때에도 key 값을 해시함수에 넣어 해시 value 를 찾고 배열의 인덱스로 하여 value 를 찾습니다.만약 해시 함수에 의해 나오는 해시 value 값이 같다면 충돌이 생기며,1. 체이닝2. 오픈 어드레스를 이용하여 해결합니다. 1. 체이닝 : 해시 테이블의 각 인덱스의 저장공간을 리스트로 만들어 충돌이 발생할 때 리스트를 이용하여 연결합니다.2. 오픈 어드레스 : 충돌이 일어나면 다른 비어있는 공간을 찾고 저장합니다. 해시 테이.. 객체지향의 4대 특성 객체지향의 4대 특징으로는 추상화, 캡슐화,상속, 다형성이 있습니다. 추상화 : 객체들의 공통된 속성과 행동들을 묶어 표현하는 개념입니다. 공통된 기능과 속성만 표현하기 때문에 클래스를 단순화하고 세부적인 내용은 오버라이딩하여 표현합니다. 캡슐화 : 캡슐화는 낮은 결합도를 유지 할 수 있도록 설계하는 객체지향 프로그래밍의 한 특징입니다. 변수와 메소드를 클래스라는 캡슐에 넣어서 분류하여 재활용이 원할하게 하며 접근제한자를 통해 정보은닉을 할 수 있습니다.외부에서 객체의 데이터를 직접 접근하지 못하게 하고, 메서드를 통해서만 접근하도록 제한합니다 상속 : 한 클래스가 가진 속성과 기능을 하위 클래스에게 물려주는 것을 의미합니다. 파생 클래스는 기반 클래스의 특정 속성과 기능을 사용할 수 있습니다. 계층적 .. 귤 고르기 문제를 해매는 가장 큰 이유 : 매번 비슷한데 갯수를 따로 한 번 더 저장을 하면 되는데 이 방식을 기억을 못함.,..그리고 100000 연산이라고 할 때 이 연산을 2번 3번 해도 O(N) 인건데 이걸 계속 까먹으니 sort 를 쓰기 무서워함... #include #include #include #include using namespace std;bool Compare(int a, int b){ return a > b;}int solution(int k, vector tangerine) { int answer = 0; vector food; map food1; for(int i = 0; i a : food1) { food.push_back(a.seco.. 3장 버클리 소켓 정리 버클리 소켓은 인터넷으로 데이터를 주고받는데 가장 널리 쓰이는 라이브러리이다. 플랫폼맏 라이브러리의 인터페이스가 조금씩 다르긴 하지만 핵심 요소는 같다. 라이브러리의 핵심 자료형은 sockaddr 로, 여러 네트워크 계층 프로토콜의 주소를 나타낼 수 있다. 발신자나 수신자의 주소를 지정할 필요가 있을 때 이것을 사용하면 된다. UDP 소켓은 연결이 유지되지 않고 내부 상태도 없다. SOCK_DGRAM으로 UDP 소켓을 만들수 있다. UDP 패킷을 받으려면 운영체제가 포트를 하나 바인드 해주어야한다. TCP 소켓은 내부 상태가 있고 데이터 전송 전 연결을 먼저 한다. 소켓은 동작 중 호출 스레드를 블로킹하게 된다. 이것은 실시간 프로그램에서는 문제다,따라서, 멀티 스레딩, 논블로킹I/O, select().. 게임 루프의 역할과 구조 게임 루프게임 루프는 게임의 상태를 지속적으로 업데이트하고 입력을 처리하며 렌더링하는 하나의 패턴이자 게임의 핵심이다.이 게임 루프가 있어서 게임은 멈추지 않고 계속 지속될 수 있다. 게임 루프 구조1. 입력 처리 : 입력 장치를 통해 들어온 입력을 처리한다.2. 게임 상태 업데이트 : 캐릭터 이동, 물리, 충돌, AI, 시간 변화에 따른 상태 변화 등의 인게임에서 적용되는 게임 상태들을 전반적으로 업데이트한다.3. 화면 렌더링 : 업데이트 되어진 게임 상태를 그린다.4. 시간 책정 : 각 루프 사이클의 시간을 계산한다. 이러한 게임 루프 한 사이클을 시퀀스 혹은 프레임이라고 할 수 있다. 게임 루프를 사용함으로 지속적이고 일관된 게임 상태를 제공할 수 있다. 사용자의 입력을 실시간 처리하여 즉각적인 게.. 면접 예상 질문 정리 C++에서의 메모리 관리 방식에 대해 설명하세요.https://saparation.tistory.com/107 가상 함수와 순수 가상 함수의 차이점은 무엇인가요?https://saparation.tistory.com/106 동기화와 비동기화의 차이점은 무엇인가요?https://saparation.tistory.com/109 게임 루프(Game Loop)의 구조와 역할에 대해 설명해 보세요.https://saparation.tistory.com/110 객체지향 프로그래밍의 4대 특성에 대해 설명해 보세요.https://saparation.tistory.com/114 데이터 구조에서 해시 테이블(Hash Table)의 원리와 사용 사례를 설명하세요.https://saparation.tistory.com/1.. 가상 함수와 순수 가상 함수의 차이 가상 함수와 순수 가상 함수는 virtual 키워드를 이용해서 선언한다는 공통점이 있지만가상 함수는 파생 클래스가 기반 클래스의 가상 함수를 재정의 하지 않고 사용 할 수 있으며가상 함수는 기반 클래스에서 구현이 되어 있어야한다. 가상 함수가 포함된 클래스는 인스턴스를 생성할 수 있다. 순수 가상 함수는 파생 클래스가 기반 클래스의 순수 가상 함수를 무조건 재정의해야한다.순수 가상 함수는 기반 클래스에서 선언만 되어 구현되어 있지 않다. 순수 가상 함수가 1개 이상 포함된 클래스를 추상 클래스라고 하며 인스턴스를 생성 할 수 없다. 가상 함수의 목적은 파생 클래스에서 재정의하여 기반 클래스의 함수를 확장 및 변경 가능하게 한다.순수 가상 함수의 목적은 클래스를 추상 클래스로 만들며 순수 가상 함수로 선언.. 이전 1 ··· 14 15 16 17 18 19 20 ··· 29 다음