분류 전체보기
소켓 입출력 모델 - Overlapped 모델
Overlapped 모델완료 루틴을 통해 비동기 입출력 결과를 처리한다.완료루틴 - 애플리케이션이 정의한 일종의 콜백함수로 운영체제가 적절한 시점에 자동으로 호출하도록 되어 있다.동작 원리비동기 입출력 함수를 호출함으로써 운영체제에 입출력 작업을 요청한다.해당 스레드는 곧바로 alertable wait 상태로 진입한다비동기 입출력 작업이 완료되면, 운영체제는 스레드의 APC 큐에 결과를 저장한다비동기 입출력 함수를 호출한 스레드가 alertable wait 상태에 있으면, 운영체제가 APC 큐에 저장된 정보를 참조하여 완료 루틴을 호출한다 APC 큐에 저장된 정보를 토대로 모든 완료 루틴 호출이 끝나면, 스레드는 alertable wait 상태에서 빠져나온다APC Queue (Asynchronous Pr..
[브3] 2476 - 주사위 게임
int main(){ int n, res = 0; cin >> n; while (n--) { int a, b, c, sum = 0; cin >> a >> b >> c; if (a == b && a == c && b == c) sum = 10000 + a * 1000; else if (a != b && a != c && b != c) { int biggest = max(a, max(b, c)); sum = biggest * 100; } else { int val = 0; if (a == b || a == c) val = a; //else if (b == c) else val = b; sum = 1000 + val * 100; } res = max(r..
[브2] 5622 - 다이얼
int main(){ string str; cin >> str; int res = 0, arr[]{3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10}; for (int i = 0; i
[실4] 1018 - 체스판 다시 칠하기
#pragma region 라이브러리#include //#include #include #include #include #include #include #include #include using namespace std;#pragma endregion#pragma region 최적화용#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define y first#define x second#define INIT 9876543210#define MAX_SIZE 8using IntPair = pair;using DoubleVec = vector>;using Vec = vector;// 상하좌우IntPair dir[]{ { 1, 0 }, {-1, 0 }, { 0, ..
[브2] 2798 - 블랙잭
#pragma region 라이브러리#include //#include #include #include #include #include #include #include #include using namespace std;#pragma endregion#pragma region 최적화용#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define y first#define x second#define INIT 9876543210using IntPair = pair;using DoubleVec = vector>;using Vec = vector;// 상하좌우IntPair dir[]{ { 1, 0 }, {-1, 0 }, { 0, -1 }, { 0, 1 }};#p..
[실4] 9012 - 괄호
#pragma region 라이브러리#include #include #include #include #include #include #include #include using namespace std;#pragma endregion#pragma region 최적화용#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define x first#define x secondusing IntPair = pair;using DoubleVec = vector>;using Vec = vector;// 상하좌우IntPair dir[]{ { 1, 0 }, {-1, 0 }, { 0, -1 }, { 0, 1 }};#pragma endregionint main() { int t;..
[실4] 10773 - 제로
#pragma region 라이브러리#include #include #include #include #include #include #include #include using namespace std;#pragma endregion#pragma region 최적화용#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define x first#define x secondusing IntPair = pair;using DoubleVec = vector>;using Vec = vector;// 상하좌우IntPair dir[]{ { 1, 0 }, {-1, 0 }, { 0, -1 }, { 0, 1 }};#pragma endregionint main() { int t;..
[브1] 10798 - 세로읽기
#include #include #define SIZE 9#define FAST_IO() ios::sync_with_stdio(0); cin.tie(0);#define x first#define x secondusing namespace std;int main() { int n = 5; vector v(n); while (n) { int idx = 5 - n; cin >> v[idx]; n--; } for (int x = 0; x
[브1] 14467 - 소가 길을 건너간 이유 1
#include #include using namespace std;int main() { int n; cin >> n; vector v(n + 1, -1); int cnt = 0; while (n--) { int a, b; cin >> a >> b; int cur = v[a]; if (v[a] != b) { v[a] = b; // 첫 초기화 값 if (cur == -1) continue; cnt++; } } cout
[Python] 문자열 뒤집는 3가지 방법
Slice / 슬라이싱시작 인덱스 또는 끝 인덱스 또는 step을 넣지 않는다면, 전체를 뜻한다.num = [1,2,3,4,5]print(num[::]) # [1,2,3,4,5] / 전체print(num[2::] # [3,4,5] / index 2부터 끝# step의 의미 => 증가폭num = [1,2,3,4,5,6,7,8,9,10]num[1::2] # index 1번째부터 끝까지 2씩 증가하며 sliceprint(num[1::2]) # [2, 4, 6, 8, 10]-index는 끝 인덱스부터 차례대로 -1 -2 -3 ... 인덱스 값을 뜻하며 전체 길이를 알 수 없을때 용이나게 쓰인다.num = [1, 2, 3, 4, 5]num[-1] # 마지막 요소인 5print(num[-1]) # 5num[1:-1..