목록분류 전체보기 (718)
쌓고 쌓다
희소행렬을 2차원 배열을 통해 전체를(0도 포함해서) 저장해버리는 방법 장점: 행렬의 연산이 간단해진다. 단점: 대부분의 항이 0인데 메모리 낭비이다. 0이 아닌 요소들만 구조체를 이용해서 저장하자 장점: 메모리 공간 절약 단점: 행렬의 연산들의 구현이 복잡 아래의 코드는 구조체를 이용해 0이 아닌 요소들만 있는 행렬의 덧셈을 하는 코드이다. #include using namespace std; #define ROWS 3 #define COLS 3 #define MAX_TERMS 10 typedef struct Element { int row; int col; int value; }Element; typedef struct sparse_matrix { Element data[MAX_TERMS]; int ..
리터럴(literal) 프로그램에 직접 표현한 값을 말한다. 정수, 실수, 문자, 논리, 문자열 타입 모두 리터럴이 있다. 정수 리터럴의 종류 유형 설명 사례 10진수 0으로 시작하지 않는 수 15 -> 15 (10진수) 8진수 0으로 시작하는 수 015 -> 13 (=1*8+5) 16진수 0x로 시작하는 수 0x15 -> 21(=1x16+5) 2진수 0b로 시작하는 수 0b0101 -> 5 (10진수) int n = 15; // 십진수 15 int n = 015; // 015는 8진수로서 십진수 13 int n = 0x15; // 0x15는 16진수로서 십진수 21 int n = 0b0101; // 0b0101은 2진수로서 십진수 5 - 정수 리터럴은 int 타입으로 자동으로 컴파일된다. - long ..
"ls -al" 명령어로 파일들을 자세히 보면 앞부분에 권한 정보가 있다. 아래와 같은 형태이다. drwxr-xr-x 앞의 첫 한자리는 File type을 갖는다. 그후 3개씩 각 영역을 나눠 Owner, Group, Others로 나눈다. File type - : 일반파일 d : 디렉토리 l : 링크 파일 b : Block device file c : Character device file Owners : 파일 또는 디렉토리의 창조자이다. (나) Group : Owner의 그룹이다 ( 개발자들 ) Other : Owner과 Group이 아닌 모든 유저들 ( 우리 대학교 학생들 ) 각 Permission은 3개씩 나눠지는데 모두 3칸은 r w x로 이루어져 있다. 각 칸에 해당 스펠링 (r, w, x)가..
리눅스에서 디렉토리 구분은 /(슬래시), 윈도우에서는 (역슬래시) 리눅스의 디렉토리는 윈도우에서 폴더 개념이다. 리눅스의 최상위 디렉토리는 / 이다. 그 아래 다양한 디렉토리 들이 있다. /bin : 기본 명령어 /sbin : 부팅관련 명령어 /etc : 환경설정 파일 /usr : 명령어, 시스템 프로그램, 라이브러리 루틴 /kernel : 커널 이미지 /dev : 디바이스 파일 /home : 사용자 홈디렉토리 /export : NFS 마운트 /lib 라이브러리 /var : 메일, 로그 스풀링, 웹서비스 /tmp : 임시파일 /proc : 시스템 정보를 저장하는 가상 파일 시스템 /lost+found : 훼손된 파일 장소 /cdrom : cdrom /mnt : 외부 장치 마운트 Partition "sd"..
https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net #include #include using namespace std; int T[1500001]; int P[1500001]; int dp[1500051]; int N,res=0; int main(void) { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin >> N; for (int i = 1; i > T[i..
https://www.acmicpc.net/problem/1256 1256번: 사전 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 김진영 조교는 동호와 규완이에게 특별 과제를 주었다. 특별 과제는 특별한 문자열로 이루어 진 사전을 만드는 것이다. 사전에 수록되 www.acmicpc.net #include #include #include using namespace std; long long dp[101][101]; int N, M, K; string res = ""; long long Count(int a, int z) { if (a == 0 || z == 0) return 1; if (dp[a][z] != 0) return dp[a][z]; return dp[a][z] = min(Count..
https://www.acmicpc.net/problem/2887 2887번: 행성 터널 첫째 줄에 행성의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 다음 N개 줄에는 각 행성의 x, y, z좌표가 주어진다. 좌표는 -109보다 크거나 같고, 109보다 작거나 같은 정수이다. 한 위치에 행성이 두 개 이 www.acmicpc.net #include #include #include #include using namespace std; int parent[100001]; int N,res; vector v[3]; // 좌표,i번째 행성 vector planet; // dis,A번째 행성,B번째 행성 int Find(int x) { if (parent[x] == x) return x; return ..
https://www.acmicpc.net/problem/2665 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1 ≤ n ≤ 50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net #include #include using namespace std; queue q; int arr[50][50]; int visit[50][50]; int side[4][2] = { {-1,0},{1,0},{0,-1},{0,1} }; int res = 987654321; int N; void BFS() { q.push(make_pair(0, make_pair(0, 0))); visit[0][0]..