C++ 13

20200917 공부

아이템 확률 퀵정렬 문자열 링크드리스트 아이템 확률 아이템 확률대로 아이템을 뽑아보자 아이템, 빈도수 A, 20000 B, 1 C, 20000 D, 30000 A + B + C + D = 70001 1부터 70001 사이의 숫자를 랜덤하게 생성 if 숫자가 20000 보다 작으면 A아이템 else if 숫자가 20001 보다 작으면 B아이템 else if 숫자가 40001 보다 작으면 C아이템 else if 숫자가 70001 보다 작으면 D아이템 100만번 뽑아서 각각의 아이템이 나온 개수 출력 #include #include #include int items[] = { 20000, 1, 20000, 30000 }; int main() { srand(time(0)); int itemRange[4]; in..

공부 2020.09.18

20200916 공부

엔디언 함수포인터 switch case 구조체 패딩 엔디언 메모리 저장 방법 리틀엔디언 하위->상위 빅엔디언 상위->하위 함수포인터 함수포인터를 배열에 넣고 사용해보기 #include int sum(int a, int b) { return a + b; } int sub(int a, int b) { return a - b; } int mul(int a, int b) { return a * b; } int main() { int (*calcs[3])(int, int); calcs[0] = sum; calcs[1] = sub; calcs[2] = mul; int a = calcs[0](10, 20); int b = calcs[1](20, 10); int c = calcs[2](10, 2); return 0; ..

공부 2020.09.16

20200905 공부

소켓 옵션 코딩 연습 소켓 옵션 소켓 옵션 관련 함수 소켓 옵션을 설정할 때는 setsockopt() 함수를 사용 현재 설정된 소켓 옵션 값을 얻을 때는 getsockopt() 함수를 사용 setsockopt() 함수와 달리 getsockopt() 함수는 마지막 인자가 값-결과 인자임에 주의 SOL_SOCKET 레벨 소켓 옵션 optname optval 타입 get set 설명 SO_BROADCAST BOOL o o 브로드캐스팅 데이터 전송 허용 여부 SO_KEEPALIVE BOOL o o 주기적으로 연결 상태 확인 여부 SO_LINGER LINGER{ } o o 소켓 송신 버퍼에 미전송 데이터가 있을 때 closesocket( ) 함수의 리턴 지연 시간 설정 SO_SNDBUF SO_RCVBUF int ..

공부 2020.09.05

20200904 공부

1. 문제풀이 2. 스레드 동기화 3. UDP 서버 - 클라이언트 4. 브로드캐스팅 1. 문제풀이 1. DDB와 DIB의 차이에 대해 서술하시오. BMP파일은 어떤 쪽에 해당하며, 우리가 WinAPI를 통해 그림을 찍으려면 BMP파일을 어떻게 해야 되는지 DIB와 DDB관점에서 설명하시오. DDB (Device Dependent Bitmap) GDI에서 DC와 연결되는 Bitmap을 DDC라 한다 출력 장치에 종속적 이미지의 크기, 색상 등 기본적인 정보와 이미지 데이터로 구성 DIB (Device Independent Bitmap) 출력 장치에 독립적 DDB에 비해 색상 테이블, 해상도 정보 등의 추가 정보를 가지므로 장치에 종속되지 않음 BMP파일은 DIB에 해당한다 출력은 .. 다른점을 잘 모르겠다..

공부 2020.09.04

20200903 공부

1. 문제 만들기 2. 멀티스레드 1) 스레드 생성과 종료, 인자 전달 연습 2) 스레드 우선순위 변경 연습 3) 스레드 실행 제어와 종료 기다리기 연습 4) 멀티스레드 TCP 서버 1. 문제 만들기 1) x86 함수 호출 규약 (1), (2), (3) 에 해당하는 값을 채우시오. 규약 인자 전달 순서 인자 전달 매체 Stack을 정리하는 함수 cdecl ← Stack ( 2 ) stdcall ( 1 ) Stack ( 3 ) fastcall ← Register + Stack Callee 2) 함수 포인터 ( ? ) 부분을 채워서 코드를 완성하시오 int Sum(int a, int b) { return a + b; } int main() { ( ? ) int res = FuncSum(10, 20); ret..

공부 2020.09.03

20200902 공부

1. 데이터 전송하기 2 1) 가변 길이 데이터 전송 연습 2) 고정 길이 + 가변 길이 데이터 전송 연습 3) 데이터 전송 후 종료 연습 1. 데이터 전송하기 2 1) 가변 길이 데이터 전송 연습 클라이언트 코드 수정 // 가변 길이 데이터 전송 // EOR = '\n' const int bufSize = 50; char buf[bufSize]; const char* testData[] = { "안녕하세요", "반가워요", "오늘따라 할 이야기가 많을 것 같네요", "저도 그렇네요" }; for (int i = 0; i < 4; i++) { int len = strlen(testData[i]); strcpy_s(buf, bufSize, testData[i]); buf[len++] = '\n'; ret ..

공부 2020.09.02

정올 1183 동전 자판기(下) 문제풀이

정올 문제풀이 1183 : 동전 자판기(下) 문제 철수는 동전 자판기를 자주 이용한다. 그래서 그는 항상 상당히 많은 개수의 동전들을 주머니에 가지고 다니는데, 동전들이 주머니에서 짤랑거리는 것을 듣기 싫어한다. 그래서 철수는 동전자판기에서 무언가 살 때는 되도록 많은 개수의 동전을 사용한다. 철수의 주위에 있는 자판기들은 아주 구형인 모델이어서 지폐를 사용할 수 없고, 또, 정확한 액수만을 넣어야 한다. 이 문제는 철수가 가지고 있는 동전 중 최대 개수의 동전을 이용하여 자판기의 물건을 구입하는 방법을 출력하는 프로그램을 작성하는 것이다. 입력형식 첫줄에는 자판기에서 구입하려는 물건의 값 W가 주어진다. 둘째줄에는 6개의 정수가 주어진다. 각각의 정수는 철수가 가지고 있는 500원짜리, 100원짜리, ..

비트맵 이미지블렌딩 프로그램 만들기 (c++ 연습)

가로 세로 크기가 같은 두 개의 32bit컬러 비트맵파일을 블렌딩해서 새로운 bmp 파일로 저장하는 프로그램 만들기 c++ 코드 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 #include #include #include void Blending(const char* pfN..

공부 2020.07.18

정올 2499 저울 문제풀이

정올 문제풀이 2499 : 저울 입력받은 숫자들을 더해서 만들 수 없는 최소 숫자를 구하기 제출코드 c++ #include #include using namespace std; int main() { int n; int arr[1000]; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", arr + i); sort(arr, arr + n, less()); int res = 0; for (int i = 0; i < n; i++) { if (res + 1 < arr[i]) break; res += arr[i]; } ++res; printf("%d\n", res); return 0; } 입력 예 7 3 1 6 2 7 30 1 정렬! 1 1 2 3 6 7 30..