개발(Dev) 이야기

    [Linux] 노트북 덮개를 덮어도 절전모드로 들어가지 않는 방법

    딱 command 네번 실행하면 끝난다. sudo vi /etc/systemd/logind.conf ## HandleLidSwitch=suspend 항목에서 '#'를 지우고 suspend를 ignore로 수정 HandleLidSwitch=ignore systemctl restart system-logind

    [C++] scanf 와 cin 수행속도 차이

    일반적으로 C++을 사용하면서 cin 표준입출력을 많이 사용했었다. 허나 다음과 같은 문제로 인해 scanf와 cin의 입출력 시간차이에 대해서 알게되었다. //토마토_7576.cpp -시간초과 뜸 #include #include using namespace std; int inf[1001][1001]; int check[1001][1001]; int result = 0; int m, n; int dx[] = { 0,0,1,-1 }; int dy[] = { 1,-1,0,0 }; void bfs(int x, int y) { queue q; q.push(make_pair(x, y)); while (!q.empty()) { x = q.front().first; y = q.front().second; q.pop..

    [BOJ] 미로탐색_2178

    #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) #include #include #include #include using namespace std; int map[1001][1001]; int check[1001][1001]; int cnt = 1; int dx[] = { 0,0,1,-1 }; int dy[] = { 1,-1,0,0 }; int n, m; int result = 0; void bfs(int x, int y) { queue q; q.push(make_pair(x, y)); check[x][y] = 1; while (!q.empty()) { x = q.front().first; y = q.front().second; q.pop(..

    [C++] scanf 버퍼 오버플로우 오류 해결방법

    scanf는 안전하지 않은 일이 발생할 수도 있는 함수들 중 하나다. %d, %f와 같은 고정폭 변수만을 입력받아오는 경우엔 문제가 되지 않지만 %c, %s와 같은 문자 입력을 받을경우 "Buffer overflow"가 발생할 수 있는 배열 입력이다. 따라서 warning C4996 오류가 발생한다. Microsoft에선 이를 지양하기 위해 scanf_s를 사용하라고 권고한다. 그렇지만 C++에선 scanf_s는 표준 문법이 아니므로 이 에러를 해결해야 한다. 아래와 같이 코드를 추가하면 된다. #pragma warning(disable:4996) 또는 #define _CRT_SECURE_NO_WARNINGS를 전처리기 부분에 추가해주면 된다. #define _CRT_SECURE_NO_WARNINGS #..

    [C++] cin 대신 scanf 에서 정수 1자리씩 입력받는 방법

    #include ... scanf("%1d", &num) 위와 같이 선언해주면 된다. C++에선 정수가 띄어쓰기 없이 입력받을 때 cin으로 입력이 어렵다. 따라서 전처리기에 #include 를 써준 뒤 scanf 선언을 위와 같이 선언해주면 붙어있어도 한번에 한개씩 입력받을 수 있게 된다.

    [C++] STL Queue 사용법

    Queue는 우리가 자료구조에서 배웠던 자료형과 의미가 같다. 알고리즘에서 보통 BFS 에서 자주 사용한다. 따라서 전처리기에 queue를 선언해주면서 사용할 수 있다. #include ... int value=1; int x=0, y=0; // 초기 선언 queue q; queue q; // 값 삽입 q.push(value); q.push(make_pair(x,y)); // 값 삭제 q.pop(); //pair를 사용한 queue에서 값 호출 q.front().first; // x q.front().second; // y

    [C++] 동적으로 2차원 배열 할당하기 - vector편

    C++에서 동적으로 2차원 배열 할당하는 방법은 간단하다. vector matrix(n, vector (n)); 이 말은 vector 방 안에 value 값을 다시 vector로 생성하여 2차원화 해주는 것이다. #include #include using namespace std; int main() { int n; cin >> n; vector matrix(n, vector (n)); for (int i = 0; i > matrix[i][j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout

    [BOJ] BFS, DFS 구현 방법

    BFS 함수 구현 방법 void bfs(int start) { queue q; memset(check, false, sizeof(check)); check[start] = true; q.push(start); while (!q.empty()) { int node = q.front(); q.pop(); cout

    [BOJ] 카잉달력_6064.cpp

    1차 시도 #include #include using namespace std; int main() { int t; cin >> t; vector m(t); vector n(t); vector x(t); vector y(t); vector k(t); for (int i = 0; i > m[i] >> n[i] >> x[i] >> y[i]; } for (int i = 0; i < t; i++) { int cnt = 1; while (true) { if (m[i] < n[i]) { if ((m[i] * (cnt + 1) + x[i]) == (n[i] * cnt + y[i])) { k[i] = m[i] * (cnt + 1) + x[i]; break; } } else if (m[i]..

    [C++] Vector에서 Unique, erase를 활용한 중복순열

    #include #include #include using namespace std; int main() { int n, m; cin >> n >> m;// 4 2 vector buf(n); for (int i = 0; i > buf[i];// 4 4 5 2 sort(buf.begin(), buf.end());// 2 4 4 5 buf.erase(unique(buf.begin(), buf.end()),buf.end()); // 2 4 5 cout