programming

합병정렬(merge sort)

분할 정복(divide and conquer) 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략 - 분할(Divde) 입력 배열을 같은 크기의 2개의 부분 배열로 분할 - 정복(Conquer) 부분 배열을 정렬 - 결합(Combine) 정렬된 부분 배열들을 하나의 배열에 합병 #include int sorted[8]; void merge(int list[], int left, int mid, int right){ int i,j,k,l; i=left; //왼쪽 배열의 첫 인덱스 j=mid+1; //오른쪽 배열의 첫 인덱스 k=left; //임시 배열 인덱스 // 합병 while(i

programming/c 2023.01.14

error: variable-sized object may not be initialized

C90 표준이 적용된 C 컴파일러는 배열을 사용해 변수를 선언할 때 배열길이를 상수로 사용해야 한다. 아래와 같이 사용하면 오류가 발생한다. int n=8; int list[n]={21,10,12,20,25,13,15,22}; C99 표준 문법은 위 같은 표현이 가능하며, 이를 가변 길이 배열 (Variable-Length Array)이라 부른다. VLA 지원되지 않는다면, malloc 함수를 통해 동적 배열을 구현하면 된다.

programming/c 2023.01.14

[MySQL] 명령어

데이터베이스 접속 mysql -uroot -p 데이터베이스 조회 show databases; 데이터베이스 생성 create database [데이터베이스명]; 데이터베이스 삭제 drop database [데이터베이스명]; 데이터베이스 접속 use [데이터베이스명]; 테이블 생성 create table [테이블명] ( [필드명] [타입], [필드명] [타입], ... primary key([필드명]) ); 테이블 수정 - 새로운 필드 추가 alter table [테이블명] add [필드명] [타입]; - 필드 삭제 alter table [테이블명] drop [삭제할_필드명]; 테이블 삭제 drop table [테이블명]; 테이블 확인 desc [테이블명]; 레코드 삽입 insert into [테이블명] ..

programming/sql 2023.01.09

[C++] STL

STL 표준 템플릿 라이브러리(Standard Template Library) - 임의 타입의 객체를 보관할 수 있는 컨테이너 (container) - 컨테이너에 보관된 원소에 접근할 수 있는 반복자 (iterator) - 반복자들을 가지고 일련의 작업을 수행하는 알고리즘 (algorithm) 컨테이너는 객체가 어떤 특성을 갖는지 무관하게 라이브러리를 자유롭게 사용할 수 있다. 컨테이너는 크게 두가지 종류가 존재한다. 배열처럼 객체들을 순차적으로 보관하는 시퀀스 컨테이너와 키를 바탕으로 대응되는 값을 찾아주는 연관 컨테이너가 있다. 시퀀스 컨테이너의 경우 vector, list, deque 3가지가 정의되어 있다

programming/c++ 2023.01.09

[programmers] 폰켓몬

문제설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫 ..

programming/c++ 2023.01.09

[programmers] 완주하지 못한 선수

문제설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. - 입출력 예시 ["leo", "kiki", "eden"] ["eden", "kiki"] "leo..

programming/c++ 2023.01.08

[C++] 객체지향

추상화 사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것 객체 현실세계에 존재하는 것들을 나타내기 위해서는 추상화 과정이 필요 변수와 함수로 이루어져 있다. 객체의 변수나 함수를 인스턴스 변수, 인스턴스 메소드라고 부른다. 객체의 인스턴스 변수의 값은 외부에서 바꾸지 못하고, 객체의 인스턴스 함수를 통해서만 변경이 가능하다. Animal animal; animal.full+=100; //불가능 animal.increate_food(100); //가능 캡슐화 외부에서 직접 인스턴스 변수의 값을 바꿀 수 없고 인스턴스 메소드를 통해서 간접적으로 조절할 수 있다. 객체가 내부적으로 어떻게 작동하는지 몰라도 사용할 수 있다. 클래스 객체의 설계도 클래스를 통해서 객체를 생성하고,..

programming/c++ 2023.01.08