분류 전체보기 81

13458_시험감독

13458_시험감독출처 : https://www.acmicpc.net/problem/13458 학생인원수(A[i]) - 총 감독관이 볼 수 있는 학생수(B).1의 값이 0보다 크다면 부 감독관이 봐야할 학생수가 남아 있다는 의미이다.1의 값이 0보다 작다면 부 감독관이 봐야할 학생수가 없다. 다음 시험관으로 넘어간다.남은 학생수가 부감독관이 볼 수 있는 학생수에 나누어 떨어진다면 몫을 결과값에 더해준다.나누어 떨어지지 않는다면, 나눈 몫에 +1을 하여 결과값에 더해준다.예외는 학생수에 총 감독관이 볼수 있는 학생수를 빼면 음수가 나올 수 있다는 것이다. 그래서 1번과 같은 조건문이 필요하다. // // 13458_시험감독.cpp // cpp // // Created by 박종훈 on 2018. 6. 12..

ALGORITHM 2018.06.12

14502_연구소

14502_연구소문제 : https://www.acmicpc.net/problem/14502입력값 받기초기 바이러스의 위치를 저장벽세우기벽은 DFS를 이용.벽의 수가 3이면 바이러스를 퍼트린다.바이러스를 퍼트린 후 다시 벽을 세워야 하므로 배열을 복사한다.(visited에 저장)BFS를 이용하여 바이러스를 퍼트린다.안전영역의 수를 센다. if( 안전영역 > max) max = 안전영역max값을 출력한다. // // 14502_연구소.cpp // cpp // // Created by 박종훈 on 2018. 6. 11.. // Copyright © 2018년 박종훈. All rights reserved. // ​ #include #include #include ​ using namespace std; ​ i..

ALGORITHM 2018.06.12

Mutex와 Semaphore

Mutex와 Semaphore멀티 프로세스, 멀티 스레드 시스템에서 공유자원에 대한 동시 간섭을 막기위한 동기화 방법 중 유저모드 동기화, 커널모드 동기화가 있다. 유저모드동기화에는 Critical Section, 커널모드동기화에는 Mutex, Semaphore가 있다.Context-switching이란? 하나의 프로세스가 CPU를 사용중 인 상태에서 다른 프로세스가 CPU를 사용하도록 하기 위해 이전 프로세스의 상태를 Context에 보관하고, 새로운 프로세스의 상태를 적재하는 작업을 말한다. Context는 PCB에 기록되어 있다. Critical Section(임계 영역)멀티 프로세스의 각 프로세스가 데이터를 공유하며 수행될 때, 동시 접근 가능한 프로그램 코드영역을 말한다. 이 공유자원의 독점사용..

ALGORITHM 2018.06.07

1181_단어정렬

1181_단어정렬위 문제는 단어가 짧은 순서대로, 길이가 같다면 사전순으로 단어를 정렬하는 문제이다. 아울러 중복제거도 해주어야 한다. 여기서는 sort(start, end, compare)의 compare이 핵심이었다. 배열안의 원소를 정렬하는데, 조건에 맞게 정렬을 할수 있게 해주는 함수이다. 여기서는 cmp함수를 나타낸다. 다음은 parameter compare에 대한 설명이다. compBinary function that accepts two elements in the range as arguments, and returns a value convertible to bool. The value returned indicates whether the element passed as first ar..

ALGORITHM 2018.05.11

10989_수 정렬하기3

10989_수정렬하기3최대 10,000,000개의 수가 주어질 수 있으므로 vector, 동적할당 등을 사용하면 무조건 메모리초과 오류가 발생한다. 그래서 조건에 '이 수는 10,000보다 작거나 같은 자연수이다.' 에 초점을 맞추어 본다.array[index]Valuearray[1]0array[2]1array[3]2array[4]0array[5]4array[6]0위와 같이 입력으로 주어지는 수를 index로하는 배열의 value값을 하나씩 올려주면서 값을 저장한다. 그리고 출력하는 부분은 다음과 같이 코드를 작성한다. for(int i=1;i T; ​ while(T--) { int value; cin >> value; arr[value]++; } ​ for(int i=1;i

ALGORITHM 2018.05.11

1427_소트인사이드

1427_소트인사이드2143을 입력하면 출력을 4321을 출력하는 문제이다.여기에서는 2143을 char로 입력받아 int로 변환하여 정렬한 후 출력하는 부분이 핵심이었다. Char to int를 하기 위해 다음 코드를 사용하였다.v.push_back(T[i]-'0');전체코드#include #include #include #include ​ #define IOFAST() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); ​ ​ using namespace std; ​ int main() { IOFAST(); string T; vector v; cin >> T; for(int i=0;i

ALGORITHM 2018.05.11

EC2에 배포하기

EC2에 배포하기1. github의 respository에 push 합니다. $ git push origin master 2. EC2 인스턴스 생성합니다.리션은 서울로 설정.생성시 키파일 저장. ( 키파일.pem )생성 후 인스턴스 클릭 -> 보안 그룹 -> launch-wizard…~ -> 인바운드 -> 편집 -> 규칙추가유형 : HTTP, 소스 : 위치 무관 (웹에서 접속할 수 있게 해주는 규칙)유형 : 사용자 지정 TCP , 포트범위 : 8080, 소스 : 위치 무관 (사용자가 웹에서 접속할 수 있게 해주는 규칙)유형 : SSH, 소스 : 위치 무관 (사용자가 terminal에서 접속할 수 있게 해주는 규칙) 3. MAC에서 EC2 인스턴스를 접속합니다.인스턴스 생성시에 내려받은 key파일이 있는 ..

기타 2018.05.11

결합도, 응집도

결합도, 응집도유지보수성이 높은 소프트웨어는 결합도는 낮게 응집도는 높게 구성되어야 한다.결합도소프트웨어 코드의 한 요소가 다른 것과 얼마나 강력하게 연결되어 있는지, 얼마나 의존적인지를 나타내는정도이다. 한 부분의 코드를 바꾸면 다른것에 얼마나 영향을 미치는지 나타내는 척도로 낮으면 좋다.응집도프로그램의 한 요소가 얼마만큼의 연관된 책임과 아이디어가 뭉쳐있는지를 나타내는 정도이다. 예로는 다음 경우가 있다.다른 기능 영역의 메소드를 다수 포함한 클래스 - 클래스가 한 가지 기능에 집중하지 못한다. 이미지를 처리하는 기능과 사운드를 처리하는 기능을 가진 클래스는 응집도가 낮다고 볼 수 있다.너무 많은 책임을 짋어진 클래스 - 돈의 지불과 관련한 기능 (현금, 수표, 신용카드)과 관련된 모든 기능을 Pay..

기타 2018.05.09

HTTP Redirection

HTTP Redirectionwww.yahoo.com을 입력했을때, 자동으로 kr.yahoo.com으로 이동하는 것을 HTTP Redirection이라고 한다. 이는 사용자가 요청한 페이지가 아닌 다른 페이지 혹은 다른 서버로 접속을 유도하는 기술이다.Web BrowsingDNS 서버에 Web Browsing한 주소를 보내 IP주소를 요청한다.DNS에서 IP 주소가 Response온다.IP 주소와 TCP Connecntion Establishing한다.HTTP Get Request이 이루어 진다.HTTP Get Response가 이루어 진다.TCP Connection Closing을 한다.서버에서 받은 정보를 브라우저가 Rendering한다.4~8번을 반복한다.이제 HTTP Redirection의 이유를..

COMPUTER_SCIENCE 2018.05.09