본문 바로가기
반응형

컴퓨터공학 기초55

[알고리즘] 스택(Stack)이란 ? 스택(Stack)이란 ? - 선형 자료구조의 한 종류로써 한쪽 끝에서만 입/출력이 일어나는 자료구조 스택의 특징 - LIFO ( Last In First Out) : 가장 나중에 추가된것이 가장 먼저 제거된다. --> 가장 처음의 추가된것은 가장 마지막에 제거된다. 연산의 종류 - pop() : 가장 위의항목을 제거 - push() : 가장 위에 Item을 추가 - empty() : 비어있는지 검사 - peek() : 가장 위의항목을 반환 (아래 구현부에서는 top이라 칭한다) TIP..peek와 pop의 차이점 -> pop은 제거하지만 peek는 제거가 아니다 ex) 1 2 3 이 차례대로 있는 Stack의 경우 peek를 하면 1 2 3 이 그대로 있지만 pop을 하면 1 2 만 남게된다. 스택의 구.. 2020. 2. 3.
[알고리즘] 퀵정렬이란 ? 퀵정렬이란 ? Divide-and-Conquer paradigm을 사용 - 풀기어려운 큰문제를 풀기쉬운 여러개의 작은문제로 바꾸어 해결 Partitioning 이용 - Pivot을 이용하여 왼쪽에는 Pivot보다 작은것들 오른쪽에는 Pivot보다 큰거를 정렬 - 1번하고 끝나는것이 아니라 정렬이 완료될때까지 재귀적으로 호출 - Pivot을 어떤방법으로 잡는지가 성능에 큰 영향을 끼친다. 시간복잡도 - 최악의경우 : O(n²) - 평균의경우 : O(nlogn) 수도코드 QuickSort(A[], p, r) { if(p 2020. 2. 2.
[알고리즘] 버블정렬이란 ? 1. 버블정렬이란 ? - 인접한 두수를 비교하여 큰수를 뒤로 보내는 정렬방법. - 시간복잡도 : O(n²) 2. 구현소스 1. 큰수부터 맨뒤까지 보내야하기때문에 처음검사할때 마지막 인덱스까지 검사해야합니다. 2. 인접한 두수를 비교하여 앞인덱스의 숫자가 더 크다면 위치를 바꾸어줍니다. 3. 한번수행을 완료할때마다 뒤에서부터 큰수가 위치하게됩니다 그렇기때문에 한번수행할때마다 뒤에서부터 검사할 인덱스가 하나씩 줄어들게 됩니다. ex) 3 1 2 5 4 라는 배열이 있을때 1번수행하게 되면 5가 마지막에 위치하므로 5번째 인덱스는 검사를 하지않아도됨 3. 실행결과 2020. 2. 1.
[Git] Git 자주쓰는 명령어 정리/ Git Command git remote -v : 원격저장소를 조금 더 자세하게 볼 수 있다. git remote add 이름 원격저장소 url : 원격저장소를 추가할 수 있다. git status : git 프로젝트의 상태를 확인할 수 있다. (변경되거나 삭제된 파일 확인) git add : 파일을Staged상태로 변경한다. git commit : stage영역에 있는 파일들을 저장한다. git pull : 원격저장소의 파일들을 로컬저장소로 가져온다. git push : commit내역들을 원격저장소에 저장한다. git clone : 로컬저장소에 아무것도 없을 때 원격저장소의 프로젝트를 내려받는 명령어 git log : 커밋 히스토리 조회 2020. 1. 27.
[네트워크] TCP/IP란 ? TCP/IP 란? - 네트워크의 대표적인 통신 프로토콜 - 대용량의 데이터를 상대방에게 정확하게 전송가능하며 받았는지 확인 할 수 있는 신뢰성 높은 프로토콜 - 4계층을 사용한다 TCP/IP 동작방식 1. 보내려는 측에서 데이터 캡슐화 > 애플리케이션 계층에서 사용자가 이용하려는 프로토콜을 정의한다 ex) FTP, HTTP, .... > 트랜스포트 계층에서는 애플리케이션 계층에서 받은 데이터를 조각낸 후 안내번호와 포트번호를 붙여 네트워크 계층에 전달 > 수신지 MAC주소를 추가하여 링크계층에 전달 2. 전송 3. 수신 측에서는 역다중화 (캡슐화의 반대순서로)하여 데이터를 받음. ※TIP : 프로토콜 헤더는 어디에서 시작, 어떻게 매핑, 어떻게 끝나는지 들어있기 때문에 중요 TCP / IP - 3 way.. 2020. 1. 19.
AWS 배포순서 1. AWS 가입 2. IAM 생성 --> IAM을 생성해서 사용하는것이 AWS의 권장사항 3. 인스턴스 생성 --> ubuntu로 생성했음 4. 탄력적 IP생성 -> 탄력적 IP연동 --> 탄력적IP를 생성해놓고 사용을 안한다면 요금이 나온다니 주의하자 (알아보다가 알게되었다.) 5. 리눅스에 JAVA, TOMCAT 설치 6. 배포 (spring boot war 파일생성) --> 파일들을 잘 못읽어보길래 경로처음에 /를 다 삭제해주었다. --> ex) /css/~~.css --> css/~~~~.css 로 변경 2019. 12. 23.
[01] intellij gradle project 생성하기 2019. 12. 17.