목록전체 글 (780)
쌓고 쌓다

Create file cat > accountsfile > accountsfile (empty file) touch accountsfile2 Delete file : rm [-options] filename or directoryName rm 파일명 rmdir 파일명 : 비어있는 디렉토리만 삭제 가능 rm -i : 파일을 삭제하기전 경고를 해줌 rm -r 파일명 : 모든 파일과 하위 디렉토리까지 삭제 가능 Copy file : cp [-options] source destination cp test1.txt test2.txt : test1.txt를 text2.txt로 복사 cp -r test1 test2 : test1 하위 디렉토리까지 test2 디렉토리로 복사 ex, mkdir -p ./week4/te..

파일 디스크립터 장치 file descriptor 번호 키보드 (표준 입력 장치) 0 ( stdin ) 모니터 (표준 출력 장치) 1 ( stdout ) 모니터 (표준 에러 장치) 2 ( stderr ) 출력 재지정 : 명령어 > 파일 화면에 출력되는 결과를 파일의 내용으로 사용 who > name.txt == who 명령어 내용이 name.txt로 생성되어 있다. cat /etc/passwd > password == cat으로 출력한 내용이 password 파일로 만들어짐 ls oops 2> errfile == ls oops로 oops에 접근할 수 없다는 에러가 뜬다. 이 출력을 errfile로 만든다. cat errfile을 쳐보면 에러 내용이 담겨있다. 입력 재지정 : 명령어 < 파일 명령어의 입력..
배열로 만든 리스트 구현이 간단하다. 삽입, 삭제 시 오버헤드 문제 발생 항목의 개수가 제한적 구조체 구현 #define MAX_SIZE 10 using namespace std; typedef int element; typedef struct { int length; // 저장된 개수 element list[MAX_SIZE]; }ArrayListType; 초기화 함수 void init(ArrayListType* L) { L->length = 0; } is_empty 함수 bool is_empty(ArrayListType* L) { if (L->length == 0) return true; return false; } is_full 함수 bool is_full(ArrayListType* L) { if (..
https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net #include using namespace std; int N, M; int parent[1000001]; int find(int a) { if (parent[a] == a) return a; return parent[a]=find(parent[a]); } void Union(int a, int b) { a = find(parent[a]); b = find(parent[b]); if (a ..
https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 전체 코드 #include #include using namespace std; stack s; string str; int arr[26]; int N; double cal(char c) { double op1, op2; op2 = s.top(); s.pop(); op1 = s.top(); s.pop(); switch (c) { case '+': return op1 + op2; case..

큐(Queue) : FIFO(First In First Out) 구조로, 먼저 들어온 데이터가 먼저 나가는 자료구조이다. 선형 큐의 문제점 사용하며 front, rear 값이 계속 증가하여 앞부분이 비어있음에도 불구하고 더 이상 삽입이 불가능한 경우가 생긴다. 위와 같은 공간 낭비가 이루어 진다. 위의 문제를 해결하기 위해 요소를 계속 이동시켜 줄 수도 있지만 비효율적이다. 해결방법 : 원형 큐를 구현해 사용하자. 변수 #define MAX_SIZE 10 typedef int element; typedef struct { element queue[MAX_SIZE]; int front; int rear; }QueueType; front : 첫 번째 요소의 하나 앞의 인덱스이다. ( 초기값 : 0 ) re..
https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 후위 표기식으로 바꾸는 방법은 저번에 작성했었다. 저것을 참고... 설명 -> https://non-stop.tistory.com/91 전체 코드 #include #include using namespace std; string str; int prec(char ch) { switch (ch) { case '+': case '-': return 1; case '*': case '/': retu..
문자열을 탐색하는데 피연산자(숫자)라면 스택에 그냥 저장해줍니다. 연산자라면 피연산자가 2개 필요하겠죠? 스택에서 피연산자 2개를 꺼냅니다. 먼저 꺼낸 것은 op2 ( 연산자 뒤에 쓸 피연산자) 2번째로 꺼낸것은 op1 ( 연산자 앞에 쓸 피연산자)입니다. op1, op2를 연산자로 계산하여 스택에 넣어줍니다. 연산자가 / 라면 op1/op2를 스택에 넣어줍니다. 이 과정을 문자열 끝까지 실행 시 스택에는 결괏값만 남아 있을 것입니다. 전체 코드 #include #include using namespace std; int solve(string str) { stack s; int idx = 0; while (idx < str.length()) { char ch = str[idx]; if (ch != '+..