분류 전체보기

    [Linux] '... is not in the sudoers file. This incident will be reported' 오류 해결 방법

    sudo 명령어에서 root 권한이 없는 계정으로 sudo 명령을 실행했을 경우 발생하는 오류다. 따라서 Root 계정으로 먼저 접근해주어야 한다. su nano /etc/sudoers root ALL=(ALL:ALL) ALL # 바로 밑 줄에 (username) ALL=(ALL:ALL) ALL # 이 줄 추가 ****** 근데 우린 root 계정 비밀번호도 모를 때가 있다. 그러므로 다음 명령을 실행해서 password를 설정해주면 su 명령어로 root 계정을 사용할 수 있다. sudo passwd root

    [Linux] 계정 생성 및 비밀번호 변경

    연구실 친구가 서버 계정을 복잡하게 만들어서 통일되게 다시 수정하는 겸 포스팅도 추가하였다. cat /etc/passwd sudo adduser [username] # enter 쭉 치시면 됩니다. sudo passwd [username]

    [Linux] SSH 연결 설정 방법

    SSH는 Secure Shell의 약자로 보안기능이 전제되어 있는 프로토콜이다. 따라서 사전에 SSH 연결 Server를 설치해주어야 한다. sudo apt-get update -y sudo apt-get install openssh-server -y dpkg -l | grep openssh # openssh 구동 확인 명령 sudo service ssh start service --status-all | grep + # ssh 구동 확인 명령 sudo netstat -antp # ssh service 포트 확인 일반적인 Linux 환경이라면 여기까지가 끝이지만 포트포워딩을 해준 환경이라면 조금 더 추가명령을 실행해야 한다. ssh연결에서 공식 포트는 22번이다. 따라서 보안상 바꿔주기 위해 53389 ..

    [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