본문 바로가기

반응형

IT

(235)
섹션 6. Sorting and Searching(정렬, 이분검색과 결정알고리즘) 6. 장난꾸러기 문제 새 학기가 시작되었습니다. 철수는 새 짝꿍을 만나 너무 신이 났습니다. 철수네 반에는 N명의 학생들이 있습니다. 선생님은 반 학생들에게 반 번호를 정해 주기 위해 운동장에 반 학생들을 키가 가장 작은 학생부터 일렬로 키순으로 세웠습니다. 제일 앞에 가장 작은 학생부터 반 번호를 1번부터 N번까지 부여합니다. 철수는 짝꿍보다 키가 큽니다. 그런데 철수가 앞 번호를 받고 싶어 짝꿍과 자리를 바꿨습니다. 선생님은 이 사실을 모르고 학생들에게 서있는 순서대로 번호를 부여했습니다. 철수와 짝꿍이 자리를 바꾼 반 학생들의 일렬로 서있는 키 정보가 주어질 때 철수가 받은 번호와 철수 짝꿍이 받은 번호를 차례로 출력하는 프로그램을 작성하세요. 입력 첫 번째 줄에 자연수 N(5
섹션 6. Sorting and Searching(정렬, 이분검색과 결정알고리즘) 5. 중복 확인 문제 캐시메모리는 CPU와 주기억장치(DRAM) 사이의 고속의 임시 메모리로서 CPU가 처리할 작업을 저장해 놓았다가 필요할 바로 사용해서 처리속도를 높이는 장치이다. 워낙 비싸고 용량이 작아 효율적으로 사용해야 한다. 철수의 컴퓨터는 캐시메모리 사용 규칙이 LRU 알고리즘을 따른다. LRU 알고리즘은 Least Recently Used 의 약자로 직역하자면 가장 최근에 사용되지 않은 것 정도의 의미를 가지고 있습니다. 캐시에서 작업을 제거할 때 가장 오랫동안 사용하지 않은 것을 제거하겠다는 알고리즘입니다. 입력 첫 번째 줄에 캐시의 크기인 S(3
섹션 6. Sorting and Searching(정렬, 이분검색과 결정알고리즘) 4. Least Recently Used 문제 캐시메모리는 CPU와 주기억장치(DRAM) 사이의 고속의 임시 메모리로서 CPU가 처리할 작업을 저장해 놓았다가 필요할 바로 사용해서 처리속도를 높이는 장치이다. 워낙 비싸고 용량이 작아 효율적으로 사용해야 한다. 철수의 컴퓨터는 캐시메모리 사용 규칙이 LRU 알고리즘을 따른다. LRU 알고리즘은 Least Recently Used 의 약자로 직역하자면 가장 최근에 사용되지 않은 것 정도의 의미를 가지고 있습니다. 캐시에서 작업을 제거할 때 가장 오랫동안 사용하지 않은 것을 제거하겠다는 알고리즘입니다. 캐시의 크기가 주어지고, 캐시가 비어있는 상태에서 N개의 작업을 CPU가 차례로 처리한다면 N개의 작업을 처리한 후 캐시메모리의 상태를 가장 최근 사용된 작업부터 차례대로 출력하는 프로그램을 작성하세..
섹션 6. Sorting and Searching(정렬, 이분검색과 결정알고리즘) 3. 삽입정렬 문제 N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 삽입정렬입니다. 입력 첫 번째 줄에 자연수 N(1
섹션 6. Sorting and Searching(정렬, 이분검색과 결정알고리즘) 2. 버블정렬 문제 N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다. 입력 첫 번째 줄에 자연수 N(1
[인프런]스프링 핵심원리 기본편_스프링으로 전환하기 스프링 적용 드디어 본격적으로 스프링을 적용해볼 것이다. 먼저 이전에 작성했던 소스 중 AppConfig에 어노테이션을 추가한다. @Configuration : 스프링 컨테이너가 이 어노테이션이 붙어있는 클래스는 빈(Bean)을 구성하기 위한 클래스임을 알려준다. 이를 사용하면 자동으로 빈으로 등록하고 @Bean이 있는메소드를 찾아서 빈(Bean)을 생성한다. @Bean : 개발자가 직접 작성한 메소드를 통해 반환되는 객체를 Bean으로 만든다. @Component : 개발자가 직접 작성한 클래스를 빈으로 만든다. 먼저 AppConfig에 어노테이션을 추가한다. import hello.core.discount.DiscountPolicy; import hello.core.discount.FixDiscoun..
섹션 6. Sorting and Searching(정렬, 이분검색과 결정알고리즘) 1. 선택정렬 문제 N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다. 입력 첫 번째 줄에 자연수 N(1
[인프런]스프링 핵심원리 기본편_IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control) 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전(IoC)라고 한다. 1. 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 2. 즉 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 3. 반면에 AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 4. 이를 통해 프로그램의 제어 흐름은 AppConfig가 가져가게 된다. 5. 예를 들어 ~ServiceImpl 들은 필요한 인터페이스를 호출하지만 그에 대해 어떤 구현 객체들이 실행될지는 모른다. AppConfig로 분리하기 이전 코드 : private final Test..