본문 바로가기

분류 전체보기135

Codility : MaxSliceSum 풀이 Java, DP 문제 MaxSliceSum coding task - Learn to Code - Codility Find a maximum sum of a compact subsequence of array elements. app.codility.com A non-empty array A consisting of N integers is given. A pair of integers (P, Q), such that 0 ≤ P ≤ Q < N, is called a slice of array A. The sum of a slice (P, Q) is the total of A[P] + A[P+1] + ... + A[Q]. Write a function: class Solution { public int solution(in.. 2022. 3. 5.
Codility : Greedy MaxNonoverlappingSegments 풀이 Java, Greedy 알고리즘 문제 MaxNonoverlappingSegments coding task - Learn to Code - Codility Find a maximal set of non-overlapping segments. app.codility.com Located on a line are N segments, numbered from 0 to N − 1, whose positions are given in arrays A and B. For each I (0 ≤ I < N) the position of segment I is from A[I] to B[I] (inclusive). The segments are sorted by their ends, which means that B[K] ≤ B[K + 1] for K.. 2022. 3. 4.
Kafka란? (1) | 아키텍처, 핵심 개념 Kafka? 메시지 발행/구독 시스템이다. 발행된 시스템을 저장하고 중계하는 역할을 브로커(broker)가 수행한다. * 데이터를 메시지 발행자가 직접 구독자에게 보내지 않는다. 대신 발행자가 메시지를 구분해서 발행/구독 시스템에 전송하면 구독자가 특정 부류의 메시지를 구독할 수 있게 해준다. 카프카의 데이터는 지속해서 저장하고 읽을 수 있으며, 시스템 장애에 대비하고 확장에 따른 성능 저하를 방지하기 위해 데이터를 분산처리 할 수 있다. 카프카의 메시지는 토픽의 파티션에 저장되는데, 데이터를 저장할 파티션을 결정하기 위해 일관된 해시 값으로 키를 생성한다. 따라서 같은 키를 갖는 메시지는 항상 같은 파티션에 저장된다. [배치] 효율성을 위해서 여러 개의 메시지를 모아 배치 형태로 파티션에 저장하므로 네.. 2022. 3. 4.
Codility : Leader Dominator 풀이 Java, HashMap entrySet 문제 Dominator coding task - Learn to Code - Codility Find an index of an array such that its value occurs at more than half of indices in the array. app.codility.com An array A consisting of N integers is given. The dominator of array A is the value that occurs in more than half of the elements of A. For example, consider array A such that A[0] = 3 A[1] = 4 A[2] = 3 A[3] = 2 A[4] = 3 A[5] = -1 A[.. 2022. 3. 3.
RAID(레이드) 란 무엇인가? RAID 0/1/5/6/1+0 RAID(Redundant Array of Independent Disk) 여러 개의 하드 디스크에 일부 중복된 데이터를 나눠서 저장하는 기술 -> 소용량의 저장장치를 여러 대로 묶어서 대용량 저장장치를 만들어서 사용하는 기술 RAID는 여러 개의 작은 디스크들을 배열 구조로 연결하고 하나의 unit으로 패키지 함으로써 액세스 속도를 크게 향상시켰고 신뢰도 또한 높였다. RAID는 최근 대규모 저장 용량을 필요로 하는 중대형급 컴퓨터 시스템에서 널리 사용되고 있다. 출현 배경 디스크는 컴퓨터의 프로그램 실행 속도에 직접적으로 영향을 주는 온라인 보조저장장치이기 때문에 액세스 속도와 신뢰도 향상또한 용량의 증가만큼 중요하게 생각된다. 디스크의 속도를 향상시키기 위해서는 액세스 시간을 줄이고 데이터 전송 속.. 2022. 2. 19.
OOP 객체 지향 프로그래밍의 특징 객체 지향 프로그래밍 Object Oriented Programming(OOP) 란? 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 장점은? OOP는 복잡한 것을 단순하고 재사용 가능한 구조로 모델링한다. 재사용한 가능한 OOP object는 여러 프로그램에서 사용할 수 있다. 다형성(Polymorphism)을 통해 클래스별 동작을 허용한다. 캡슐화를 통해 정보를 안전하게 보호할 수 있다. 원칙 추상화(Abstraction) : 객체에 액세스하기 위한 상위 수준의 public method만 노출한다. 사용자가 객체의 선택된 특성 및 method와만 상호작용하는 것을 의미한다. - 복잡성을 표현하기 .. 2022. 2. 19.
반응형