목록대학교 (252)
SW
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cZUoUX/btqB3qPE8Q3/8syEh8sqmgjana9EsnU2v0/img.png)
0. 제목 백준 2133 타일 채우기 BOJ 2133 타일 채우기 C++ 2133 타일 채우기 1. 문제 https://www.acmicpc.net/problem/2133 2. 풀이 3xN 크기의 벽을 2x1, 1x2 크기의 타일로 채우는 경우의 수를 구하는 것이다. 앞서 풀었던 타일 채우기 문제와는 살짝 달랐다. 앞에서 풀었던 타일 문제들은 N의 값이 늘어날 때 새로운 종류의 타일 모양이 나오지 않았다. 그러나 이 문제는 N이 2씩 늘어날때마다 새로운 모양 2개가 추가적으로 생겼다. 먼저 끝 2칸을 제외하면 3가지 방법이 나온다. 그리고 4칸, 6칸, 8칸.... 제외하면 2가지씩 추가적으로 생긴다. 그리고 3xN의 크기의 벽을 2x1, 1x2로 채우기 위해서는 N이 짝수이어야 한다. N이 홀수이면 넓..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/v8RzO/btqB2vJG1hN/FBHDJmBNjinYMklRXBDi40/img.png)
0. 제목 백준 4963 섬의 개수 BOJ 4963 섬의 개수 C++ 4963 섬의 개수 1. 문제 https://www.acmicpc.net/problem/4963 2. 풀이 백준 2667 단지번호붙이기 문제와 비슷한 문제이다. 2667번은 상하좌우를 따지는 것이었다면 이 문제에서는 대각선까지 고려해야한다. dfs에서는 여덟 방향 모두 탐색을 하면서 좌표가 0보다 작아지거나 주어진 넓이나 높이보다 같거나 커지면 넘어가면서 탐색한다. 재귀적으로 코드를 작성했으므로 여덟방향 중 이어진 부분이 있으면 그 덩어리를 전부 탐색완료 할 것이다. main함수에서 탐색을 할 때 값이 1이면서 방문하지 않은 부분을 반복문 내에서 탐색한다. 한 덩어리를 탐색완료 할 때마다 덩어리개수를 1씩 증가시켜준다. 탐색을 모두 마..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/H3rGJ/btqB2vplRg3/IMvOSD0PkNojxR9RopA9M1/img.png)
0. 제목 백준 1996 프린터 큐 BOJ 1996 프린터 큐 C++ 1996 프린터 큐 1. 문제 https://www.acmicpc.net/problem/1966 2. 풀이 중요도에 따라 출력되는 순서가 다르므로 우선순위 큐를 사용한다. C++ STL의 queue와 priority_queue를 사용한다. 먼저 q의 원소들을 입력받을 때 pair를 이용하여 인덱스와 중요도 값을 쌍으로 입력 받고 q에 push 해준다. 그리고 prioirity_queue pq; 와 같이 우선순위 큐를 선언한다. 우선순위 큐에는 중요도 값만 push 해준다. q의 원소가 0개가 아닌동안 루프를 돈다. q의 가장 먼저 들어온 원소 즉, 가장 앞에 있는 원소의 인덱스와 중요도 값을 변수 nowidx, nowval에 저장한다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJTH3E/btqB2ujpBTc/pJ1L37GqruOsxf2WKMIS0K/img.png)
0. 동기 & 비동기 동기(Synchronous) : 일이 처리되면서 그 일이 오랫동안 처리되야 되는 경우에도 기다렸다가 그 다음 일을 처리하는 것이 동기적으로 일을 처리하는 것이다. 비동기(Asynchronous) : 병렬적으로 동시에 여러가지 일을 처리하는 것이 비동기적으로 일을 처리하는 것이다. nodejs는 비동기적 처리를 위한 많은 기능을 가지고 있다. 효율적이지만 복잡하다. 동기적인 방식은 다음과 같다. sample.txt에는 'B'가 적혀있다. 실행결과 ABC가 출력된다. 다음은 비동기적인 방식이다. 실행결과 ACB가 출력된다. 1. callback함수 이름이 없는 함수를 익명함수라고 한다. 2. Package Manager PM2 와 같은 프로그램이 있다. 우리가 node를 실행했을 때 파..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c9QRgj/btqBZfIiyNb/KZfII24otcZnKAdmdLEhck/img.png)
0. 제목 백준 2170 선 긋기 BOJ 2170 선 긋기 C++ 2170 선 긋기 1. 문제 https://www.acmicpc.net/problem/2170 2. 풀이 먼저 from, to N쌍을 입력받는다. 그 후 from을 기준으로 정렬을 한다. 그럼 선끼리 겹치는 선들이 있을 것이고 겹치지 않는 선들이 있을 것이다. 겹치지 않는 경우에는 현재 길이에 l-r 만큼 더해주면 되고 겹치는 경우에는 오른쪽 끝을 다음 번 오른쪽 끝으로 갱신시켜주면 된다. 반복문이 끝난 후에는 마지막으로 갱신된 l-r을 더해주면 답이 나온다. 주의할 점은 이 문제에서 N과 선택한 지점의 범위가 크다. 따라서 main함수의 첫 세줄을 추가 하지 않았을 때는 시간초과로 떴다. 저 세줄을 추가하면 정답처리가 된다. 3. 코드 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bqEVfZ/btqBZMyOWhJ/j9k21qCifOtI1uSsPEGs8k/img.png)
0. 제목 백준 1699 제곱수의 합 BOJ 1699 제곱수의 합 C++ 1699 제곱수의 합 1. 문제 https://www.acmicpc.net/problem/1699 2. 풀이 dp방식을 사용하였다. 먼저 dp의 각 원소들을 1로만 이루어진 개수로 초기화시켰다. 이중반복문에서 i와 j는 1부터 시작할 필요가 없다. 이유는 dp[i] = i 여기서 초기화를 했는데 모두 1로 이루어진 경우를 나타낸 것이다. 따라서 2부터 시작해도 상관이 없다. 오히려 더 빠르다. dp[i] = min(dp[i], dp[i-j*j] + 1); 이 부분은 dp[i] 즉, 초기에 설정했던 값과 dp[i-j*j]+1 중 최솟값을 고르는 것이다. dp[i-j*j] 에 1을 더해주는 이유는 j*j에서 항이 1개 나오기 때문이다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/elGuNK/btqBZNK5XAN/YkKXlKfJr8nfdszww9N1k1/img.png)
0. URL http://opentutorials.org:3000/main?id=HTML&page=12 http -> protocol opentutorials.org -> host(domain)(인터넷에 접속되어 있는 각각의 컴퓨터를 host라고 한다.) 3000 -> port(한 대의 컴퓨터에 여러 대의 서버가 있을 수 있다. 그러면 클라이언트가 접속했을 때 어떤 서버와 연결할지 애매하다. 그래서 port를 설정해준다. main -> path id=HTML&page=12 -> query string(웹서버에 데이터를 전달할 수 있다. 시작은 ?로 함. 값과 값은 &로 구분한다. 1. 동적인 웹페이지 만들기 http://localhost/?id=HTML 에서 id=HTML을 query string이라고 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cwk3Bs/btqBWCX5z00/16rKK7PLgwDvAVm32rcFE0/img.png)
0. 간단한 웹 서버 만들기 노드에 기본으로 들어 있는 http 모듈을 사용하면 웹 서버 기능을 담당하는 서버 객체를 만들 수 있다. http모듈을 require()메소드로 불러온다. http객체의 createServer()메소드를 호출하면 서버 객체가 반환된다. 이 서버 객체의 listen() 메소드를 호출하면 웹서버가 시작된다. 서버를 시작할 때는 포트를 3000번으로 지정하여 해당 포트에서 클라이언트의 요청을 대기한다. listen() 메소드를 호출할 때 전달하는 두 번째 파라미터는 콜백 함수로, 웹 서버가 시작되면 호출된다. listen(port[, hostname][, backlog][, callback]) -> 서버를 실행하여 대기시킨다. close([callback]) -> 서버를 종료한다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/A5YNH/btqBYftR6Tq/CD13CnZWeHxuzmtCB6Ycak/img.jpg)
Repeater 신호를 증폭시켜줌 여러 대의 Reapeater를 통해 먼 거리까지 데이터를 전달가능 근거리 통신망을 구성하는 세그먼트들을 확장하거나 서로 연결해줌 거리를 연장하고, 접속되는 노드의 수를 증가시키기 위한 장치로 데이터 신호를 증폭시키고 정확하게 되살려서 전달하는 중계기 Switch Hub 충돌 도메인을 나누어 네트워크의 성능을 향상시킨다. Star Topology에서 동시에 두 개 이상의 Connection을 할 수 있다. 연결된 장치의 수에 따라 주고받는 데이터의 속도가 낮아지지 않고, 속도를 보장할 수 있는 것 충동제어장치가 있어서 트래픽 용량이 많아져도 전체 노드에 영향 끼치지 않는다. 프로세서는 전송패킷의 목적지 주소를 읽고, 패킷이 정해진 목적 포트로만 전송 Router 네트워크상..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cGiGF5/btqBVMGuY91/IbzjqKUmt3hmFInI0rkLFk/img.jpg)
Linux 시스템에서 'exam.txt' 를 한 페이지씩 차례대로 보기 위한 명령은? cat exam.txt | more grep은 해당 텍스트에 찾고 싶은 키워드를 찾는 명령어이다. Windows Server 2008 R2의 백업 완전 서버 백업(bare-metal backup)이 가능하다. 다른 하드웨어에 서버를 복구할 수 있다. 네트워크 공유나 로컬하드드라이브의 백업을 지원한다. 자기테이프 방식은 아주 오래된 방식으로 지원하지 않는다. R2의 보안 이벤트 감사 감사 설정에는 옵션으로 [성공,실패,감사하지않음] 옵션이 있다. 계정 로그온 이벤트는 도메인 컨트롤러가 로그온 요청을 받았을 때 발생한다. 계정관리 이벤트는 계정그룹이 생성, 수정, 삭제 또는 암호가 변경되었을 때를 기록한다. 기본적으로 모든..