전체 글
삼시세끼 잔잔하게 개발하는 프로그래밍 수련기 : Spring boot, Algorithm, Android순차검색 2. 분할정복 이분검색 합병정렬 : 다 하나짜리로 쪼개고 하나씩 합치며 정렬 QuickSort 빠른정렬. 분할 교환 정렬 : 기준값(pivot, 보통 맨 첫번째 값)을 정함. 남은 것들 양쪽ij인덱스로 좁히면서 기준값보다 큰거작은거 자리바꾸고 마지막에 j랑 기준값이랑 자리바꿈 3. Greedy 알고리즘 순서 선정 selection 적정성 점검 feasibility check : 조건에 만족하는가 해답 점검 solution check : 최적의 해인가 - 증명은 어려워도 반례가 없는지 마지막에 확인해보는 절차 권장 Fractional Knapsack problem : 단위무게당 profit이 큰 것 부터 넣는 것이 최적 0-1 Knapsack problem Two-way Optimal Merge ..
생성자 사용 ClassName c(인수리스트); ClassName c(); ClassName c; //둘 다 인자 없는 생성자 동적 할당된 객체 배열 선언 동적 할당이므로 배열 첫번째 원소를 가리키는 포인터를 생성하면 됨. 배열 포인터라고 다르지 않음. 포인터변수 선언 후 배열 동적 할당함 ClassName* p; //배열을 가리킬 포인터변수 선언 p = new ClassName[n]; //객체배열 동적할당new과 크기[]지정!!!!!!!! 인자 없는 생성자 n번 호출됨 malloc&free 냐 new&delete냐 C에서만 malloc과 free C++과 java에서는 new와 delete를 사용 멤버변수에 다른 객체의 포인터 변수를 갖는 클래스 멤버변수로 포인터 변수를 갖는 클래스에는 항상 소멸자를 ..
Chap7. 파일 시스템과 디스크 관리하기 02 리눅스 파일 시스템의 구조 파일을 inode로 관리 디렉은 파일의 목록을 가지고 있는 파일 특수파일로 장치에 접근가능 ext4 파일 시스템 구조 블록그룹 : 파일 저장의 단위인 블록(4kb)을 그룹으로 묶은 것 블록 그룹 0 : 중요정보 블록 그룹 a : 블록 그룹 0 중요정보 복사 블록 그룹 b : 데이터 저장 - 데이터블록 비트맵,inode비트맵(블록과 inode의 사용지도) / inode테이블,데이터블록(파일의 inode와 데이터) 더 자세한 구조 이름까지 외워야 할까....? inode 구조 파일의 정보 + 블록 주소들... -> 블록주소마다 데이터를 담은 블록있음. 공간이 모자라면 블록에 또 블록주소들이 있음. 이렇게 단계에 따라서 직접블록/간접 ..
Chap6. 프로세스 관리하기 01 프로세스의 개념 프로세스 : 현재 실행중인 프로그램 프로세스의 부모-자식 관계 : 부모는 자식을 생성, 자식을 실행이 끝나면 부모에 결과를 돌려주고 종료. PID : 각 프로세스에게 부여되는 고유번호 데몬 프로세스, 고아 프로세스, 좀비 프로세스 등.. 02 프로세스 관리 명령 ps -ef 또는 ps aux : 프로세스 목록 +모든 프로세스(entire) +상세정보 ps -u user1 : +user1의 프로세스 목록 ps -p 2283 : +PID가 2283인 프로세스 목록 ps -ef | grep bash : 프로세스 목록 결과에서 bash라는 문자열 검색해 해당하는 행들만 출력 pgrep -x -l 패턴 : 패턴에 해당하는 프로세스 검색해 그들의 PID 출력 +정..
Chap5. 파일 접근 권한 관리하기 01 파일의 속성 -rw-r--r-- 1 root root 223 11월 8 23:13 /etc/hosts : 파일의 종류/접근권한/하드링크개수/파일소유자/파일소유자그룹/파일크기byte/파일수정일시/파일경로 file : 파일 종류 -, d : 일반파일/디렉 groups : 해당 사용자 그룹 모두 보여줌 02~4 파일의 접근 권한 / 접근권한 변경 접근권한 rwx 읽기, 쓰기, 실행 권한 in 디렉 : ls가능/디렉 내 파일 생성 및 삭제 가능/cd로 들어갈 수 있음.파일을 복사 및 이동 가능 chmod -R : 접근권한 변경 +하위디렉까지 기호모드 u g o a : 소유자/그룹/기타/all(생략 시 all) + - = : 부여/제거/통설정 r w x ex) chmod..
01 셸의 기능과 종류 02 셸 기본 사용법 기본 셸 바꾸기 chsh -s 경로 사용자명 : (change shell) 사용자의 기본 셸을 경로에 저장된 셸로 바꾼다. echo : 문자열 출력 printf : 형식에 따른 문자열 출력 printf "%d + %d = %d\n" 10 10 20 특수문자 * : 0개이상 모든 문자열 ? : 1개 문자열 [문자들] : 괄호안의 문자들 중 1개 [0-9], [A-Za-z] : 모든 숫자/모든 알파벳 한 글자 ; : 명령어 여러개 구분 명령1 | 명령2 : 명령1 결과를 명령2에 입력으로 전달 ' ' : 완전 문자열 취급 " " : 특수문자 기능함 ` ` : 문자열 안에 `명령어` 끼워넣기 \특 : 특수문자 문자열 취급 > >> < : 파일 출력 덮어쓰기/추가하기..
Chap3. 문서 편집하기 편집기 종류 vi : 화면 단위 편집기. 모드형 편집기. vi 사용법 vi 파일명 : 해당 파일 편집 시작. 파일명 없을 시 빈 파일 i, a, o : 입력모드로. 현재커서/다음커서/다음행 위치부터 입력 r, #cw, #s, cc, C : 한글자/#단어/#글자/한 행/현재부터 행 끝까지 수정. 완료 esc #x, #dw, #dd, D : #글자/#단어/#행/현재부터 행끝까지 삭제(잘라두기) #yw, #yy : #단어/#행 복사 p, P : 아래행/위행에 붙이기 "ayy -> "ap : 네임드버퍼. a~z버퍼에 한 행 복사 붙이기 . : 직전 명령 반복 실행 u U : 직전/해당 행 명령취소 커서 이동 키 h j k l : 왼 하 상 오 ^ $ : 행의 맨 처음, 맨 마지막 h ..
Chap1. Chap2. 디렉터리와 파일 사용하기 파일의 종류와 기호 일반파일 (없거나 *) : 텍스트, 이미지, 실행파일(*) 등 심벌릭링크 (@) : 원본 파일에 다른 이름을 붙인 것(바로가기) 디렉터리 (/) : 리눅스에서는 디렉터리도 파일임 장치파일 : 리눅스에서는하드디스크, 키보드 등 각종 장치도 파일로 취급 파일명에는 알파벳, 숫자, -, _, . 만 사용 가능 파일명이 . 로 시작하면 숨김파일 파일 = 파일명 + inode + 데이터블록 inode : 외부에는 번호로, 내부에는 ls -l상세정보들. ls -i로 확인. inode번호가 같으면 같은 파일. 디렉터리 계층 구조 / : 루트. 모든 디렉터리의 출발점. 절대 경로는 항상 /로 시작함. . : 현재 디렉터리(작업 디렉터리) .. : 상..
간접 참조 포인터 변수 앞에 * 를 붙여 실제 값에 접근하는 것 포인터 변수가 가진 '값'인 주소값에 접근하고 -> 해당 주소에 존재하는 '값'에 다시 접근 하므로 간접 참조라 함. * : 간접 참조 연산자 역참조라고도 함 C++의 구조체를 간접참조할 경우 구조체의 멤버변수/함수를 접근할 때 . 를 사용함 직접 참조 포인터 변수가 아닌 실제 값을 가진 변수를 직접 사용하는 것 C++의 구조체를 직접참조할 경우 구조체의 멤버변수/함수를 접근할 때 -> 를 사용함
상황 깃랩 홈페이지에서 내 깃랩 계정의 비밀번호를 변경한 후 로컬에서 git add commit 하고 push하려고 하니 에러가 난다. remote: HTTP Basic: Access denied fatal: Authentication failed for 'https://lab.hanium.or.kr/21_IF014/21_if014.git/' 내 계정의 비밀번호가 바뀌었으니 에러가 나는 건 당연한 것~~ 로컬에서도 새 비밀번호로 설정 변경해주자. 해결법 먼저 git 계정정보를 지워야 하는데, 나 같은 경우는 github와 gitlab을 합쳐서 총 3개의 git 관련 계정을 한 컴퓨터에서 사용하고 있었기 때문에 혹여나 계정정보를 삭제하다가 내 컴퓨터의 모든 레파지토리와 관련된 계정정보가 지워질까봐 두려웠다..
백준 9372번 문제 상근이의 여행 트리구조를 활용하는 문제이다. https://www.acmicpc.net/problem/9372 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net 문제 풀이 비행기가 연결리스트임. 모든 비행기가 연결되어있으므로 그냥 방문해야 하는 나라 - 1 하면 됨 해답 코드 Python ## 백준 9372 상근이의 여행 트리 from sys import stdin #입력 T = int(stdin.readline()) #중첩 리스트 두 개 - 각 케이스..
백준 1269번 문제 대칭 차집합 트리 문제이다. https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 문제 풀이 파이썬에는 집합 자료형이 있고 관련 메서드들을 활용해서 너무 쉽게 풀 수 있었다. 해답 코드 Python ## 백준 1269 대칭 차집합 트리 # 집합 자료형 사용하지 않고도 풀어보기 from sys import stdin NA, NB = map(int, stdin.readline().split()) #집합 자료형 set() A =..
백준 16466번 문제 콘서트 우선순위 큐 문제이다. https://www.acmicpc.net/problem/16466 16466번: 콘서트 HCPC (Hanyang Completely Perfect Celebrity)는 한양대학교 최고의 가수에게 주어지는 칭호이다. 한양대학교는 매년 최고의 HCPC를 선발한다. HCPC가 되기란 여간 어려운 게 아니다. 매일 아침 날달걀을 까먹 www.acmicpc.net 문제 풀이 입력받은 데이터를 1 2 4 7 8 이라 하면 입력과 크기가 같은 배열인 1 2 3 4 5 를 활용한다. 1 2 4 7 8 1 2 3 4 5 두 배열의 각 원소를 순서대로 비교해나간다. 서로 값이 다를 경우 해당 순서의 자리가 빈 것! 다른 값이 없을 경우 마지막 자리보다 한 자리 뒤가 ..
개발 공부를 하다보면 여러 프로젝트나 소스코드 파일들이 IDE에 의해 기본 설정된 경로에 저장되어버려서 IDE마다 다른 경로에 소스코드 파일들이 흩어져있기도 하고, 내가 파일을 직접 찾아가기에는 너무 낯선 경로에 보관된다. 소스코드 파일들을 잘 관리하기 위해서는 IDE가 설정한 기본 경로가 아니라 내가 지정한 폴더에 모아서 관리하는 것이 좋다. 내가 잘 찾아가고 알아볼 수 있도록! 내가 쓴 코드가 내 컴퓨터에 저장되어있는데 개발한 사람이 그거 어딨는지 찾아가지도 못하면 웃기지 않나,, 그러니 Visual Studio 에서 프로젝트 저장과, 프로젝트 열기 시 기본적으로 나타나는 경로를 바꿔보자 Visual Studio 의 상단 메뉴들 중 > 도구 (Tools) > 옵션 (Options) 그러면 옵션 창이 ..