본문 바로가기

분류 전체보기

(108)
프로그래머스 이분 탐색 문제 : 입국심사 문제 설명 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 명만 심사를 할 수 있습니다. 가장 앞에 서 있는 사람은 비어 있는 심사대로 가서 심사를 받을 수 있습니다. 하지만 더 빨리 끝나는 심사대가 있으면 기다렸다가 그곳으로 가서 심사를 받을 수도 있습니다. 모든 사람이 심사를 받는데 걸리는 시간을 최소로 하고 싶습니다. 입국심사를 기다리는 사람 수 n, 각 심사관이 한 명을 심사하는데 걸리는 시간이 담긴 배열 times가 매개변수로 주어질 때, 모든 사람이 심사를 받는데 걸리는 시간의 최솟값을 return 하도록 solution 함수를 작성해주세요. 제한사항 입국심사..
2020.10.12 일자 수업 : Observer 디자인 패턴 Observer Design Pattern git/eomcs-java-basic/src/main com.eomcs.design-pattern.observer Observer Design Pattern (= Publish-Subscribe Pattern) Observer 디자인 패턴은 특정 객체의 상태 변화에 따라 수행해야 하는 작업이 있을 경우, 기존 코드를 손대지 않고 손쉽게 기능을 추가하거나 제거할 수 있는 설계 기법으로 발행(publish)/구독(subscribe) 모델 이라고 부르기도 한다. 구독 객체를 리스너(listener) 또는 관찰자(observer) 라 부르기도 한다. 어떤 객체의 상태에 변화가 생기면, 즉 이벤트가 생기면, 그것에 대한 소식을 받아 작업을 수행하는 객체가 listener..
Do it! 자료구조와 함께 배우는 알고리즘 입문 : 3장 검색 검색 알고리즘 검색과 키 어떤 검색을 하게 되더라도 특정 항목에 주목한다는 점은 검색하기의 공통점이다. 그 주목하는 항목을 키라고 한다. 키는 전체 데이터의 일부로, 검색 대상을 찾아내기 위해 주목하는 데이터를 말한다. 예를 들어, 여러 사람들 중 국적인 한국인 사람을 검색한다고 할 때, 국적이 키이고, 키 값은 한국이다. 또한 찾고자하는 키값과 일치하는 사람이 조건이며, 이런 조건은 꼭 하나만 있는 것은 아니고, 논리 곱이나 논리 합을 사용하여 복합 지정하기도 한다. 배열에서 검색하기 배열을 검색하는 예시로 다음 세가지 검색 기법을 제시한다. 이 중 몇몇은 자료구조에 의존한다. 우리는 이 장에서 배열 검색을 학습하며 다음의 알고리즘을 활용한다. 선형 검색 : 무작위로 늘어놓은 데이터 모임에서 검색 수행..
신흥철 교수의 이산 수학 9, 10강: 수의 체계, 보수 3. 보수의 표현 1의 보수(1` complement) 표현 어떤 수 n과의 합이 1이 되는 수 (각 자리가 합해서 1이 되는 수) 예 : 2진수 0011010의 1의 보수 = 11001010 10 진수에서는 9의 보수와 유사하다 2의 보수(2` complement) 표현 어떤 수 n과의 합이 2가 되는수 예 : 2진수00110101의 2의 보수 = 11001011 요령 : 원래의 수에서 처음 1이 나오는 수 밑으로는 0, 1이 나온 수의 자리는 1, 위의 자리들은 1의 보수 처리 10진수에서 10의 보수는 9의 보수 + 1 부호화 - 절대치 표현 부호와 데이터의 절댓값을 그대로 표현 최상위 비트 ... 최하위비트 부호 비트 절대치 비트(데이터 비트) (예제) 10진수 +53과 -53에 대하여 8bit ..
모두의 네트워크 1장 : 네트워크 첫 걸음 네트워크의 구조 네트워크란? 네트워크 : 어떤 사물의 연결을 뜻한다. 컴퓨터 네트워크 : 컴퓨터를 두 대 이상 연결하여 서로 데이터를 전송할 수 있는 통신망이다. 이 책에서는 컴퓨터 네트워크를 네트워크로 줄여 언급한다. 인터넷 : 컴퓨터 네트워크의 한 종류로, TCP/IP 프로토콜을 사용하는 세계 최대 규모의 네트워크이다. 전세계의 컴퓨터를 서로 연결하여 정보를 교환할 수 있도록 만든 하나의 거대한 컴퓨터 통신망이다. 패킷이란? 네트워크나 인터넷에서 데이터를 주고 받기 위한 규칙 중 하나는 패킷의 사용이다. 패킷(packet) : 네트워크 통신을 할 때 사용되는 작게 분할된 데이터 조각으로 네트워크에서 전송하는 데이터의 기본 단위이다. 여러번 전송하게 되더라도 굳이 여러개의 패킷으로 나눠 전송하는 이유는..
2020.10.7 일자 수업 : 웹 서버, 채팅 프로그램, 스레드 실습 - 웹 어플리케이션 git/eomcs-java-basic/src/main com.eomcs.net.ex11.step13 원래의 계산기 서버는 자바 코드로 이뤄진 클라이언트가 직접 콘솔로 연결 요청해야 하는 어플리케이션이었다. 이 서버를 http 프로토콜 요청에 대해 적절히 응답할 수 있는 웹 서버 프로그램으로 바꿀 것이다. 이렇게 프로그램을 바꾸면 이 서버에 대한 클라이언트는 웹 브라우저가 된다. 기존 프로그램과 마찬가지로 클라이언트와 연결하는 역할만 수행하는 CalculatorServer와 클라이언트의 요청에 대한 응답을 하는 RequestProcessor 클래스를 그대로 사용한다. package com.eomcs.net.ex11.step13; import java.net.ServerSocket;..
2020.10.6 일자 수업 : 네트워크 실습, 계산기 서버 실습 - 네트워크 프로그램 git/eomcs-java-basic/src/main com.eomcs.net.ex11 Desktop App vs Network App java, eclipse와 같은 컴퓨터 안에서 실행될 수 있는 어플리케이션을 데스크탑 어플리케이션이라고 하며, 이메일 프로그램과 같이 이용자가 네트워크에 접속하여 사용하는 프로그램을 네트워크 어플리케이션이라고 한다. 데스크 탑 어플리케이션은 다음과 같은 특징이 있다. 로컬에 설치해야 사용 가능하다 버전이 바뀔 때마다 재설치해야 한다. 이용자들의 로컬에 모두 설치해줘야하므로 대량의 pc 관리가 힘들다. 네트워크 어플리케이션은 서버에서 돌아가고 있는 프로그램에 이용자가 접근하는 형태이므로, 이 프로그램을 실행하는 서버를 Application Ser..
2020.10.5일자 수업 : connectionless, HTTP, URL, base64 네트워크 git/eomcs-java-basic/src/main com.eomcs.net.ex05 git/eomcs-java-basic/src/main com.eocms.net.ex06 git/eomcs-java-basic/src/main com.eocms.net.ex07 git/eomcs-java-basic/src/main com.eocms.net.ex08 git/eomcs-java-basic/src/main com.eocms.net.ex10 연결지향 (connection-oriented) 여태까지 살펴보았던 모든 연결 방식은 connection-oriented방식으로,일단 연결이 되어야 데이터를 주고 받을 수 있다. 즉, 서버가 일단 실행된 상태에서 클라이언트가 대기열에 들어간 후, 서버가 클라이언트를..