본문 바로가기

분류 전체보기127

Python subprocess 모듈 목차 LIST 들어가기 전에 Concurrency(병행성) : 컴퓨터가 여러 일을 동시에 하듯이 수행하는 것 예) CPU 코어가 하나인 컴퓨터에서 운영체제는 단일 프로세서에서 실행하는 프로그램을 교대로 빠르게 변경하여 프로그램들이 동시에 실행되는 것처럼 보이게 한다. Parallelism(병렬성) : 실제로 여러 작업을 동시에 실행하는 것 CPU 코어가 여러 개인 컴퓨터는 여러 프로그램을 동시에 실행할 수 있다. 각 CPU 코어가 각기 다른 프로그램의 명령어(instruction)를 실행하여 같은 순간에 여러 프로그램들이 실행될 수 있다. Concurrency 와 Parallelism은 속도 향상의 측면에서 가장 큰 차이점을 가진다. 한 프로그램에서 서로 다른 작업을 병렬로 진행하면 전체 작업에 걸리는.. 2023. 8. 20.
[프로그래머스] 테이블 해시 함수 Java 풀이 목차 LIST 최종 결과 import java.util.*; public class Main { public static void main(String[] args) { int[][] data = {{2,2,6}, {1,5,10}, {4,2,9}, {3,8,3}}; int res = solution(data, 2, 2, 3); System.out.print(res); } public static int solution(int[][] data, int col, int row_begin, int row_end) { Arrays.sort(data, (o1, o2) ->{ if(o1[col-1] == o2[col-1]) { return Integer.compare(o2[0], o1[0]); } return In.. 2023. 7. 30.
[프로그래머스] 숫자 변환하기 Java 풀이 첫 번째 풀이 exists를 사용하지 않으면 시간초과가 뜬다. 이전에 한번이라도 큐에 들어갔던 숫자면 skip. Node 를 쓰고싶지 않았는데, 다른 방법이 생각나지 않아서 사용했다. 밑에 풀이에선 배열로 수정됨 import java.util.*; public class Main { public static void main(String[] args) { int res = solution(2, 5, 4); System.out.print(res); } public static int solution(int x, int y, int n) { if (x == y) return 0; Queue queue = new LinkedList(); int[] exists = new int[1000001]; queue.a.. 2023. 7. 28.
[Druid] indexing service / Overlord 목차 LIST Druid indexing service Apache druid의 indexing service는 인덱싱 관련 작업을 실행하는 고가용 분산 서비스 입니다. 인덱싱 작업은 드루이드 세그먼트를 생성하거나 destroy(파괴)합니다. 인덱싱 서비스는 master/slave 와 같은 아키텍처를 가지고 있습니다. 인덱싱 서비스는 세개의 주 구성요소로 이루어져 있습니다. 1) Peon component : 단일 task 실행 2) Middle Manager component : peon 관리 3) Overlord component : middle manager에게 작업 분배 Overlord와 MiddleManager는 동일한 프로세스 또는 여러 프로세스에서 실행될 수 있지만, Middle Manage.. 2023. 7. 16.
[스프링부트] 등장 배경, 주요 특징, 핵심 4가지 목차 LIST 프레임워크란? 소프트웨어 개발을 수월하게 하기 위한 소프트웨어 개발 환경입니다. 프레임워크는 frame(틀)과 work(일하다)의 합성어로 일하기 쉬운 틀을 제공하는 것입니다. 프레임워크는 정해진 틀에서 개발해야 한다는 단점이 있지만 개발 효율은 높다는 장점이 있습니다. 프레임워크는 애플리케이션을 개발할 때 전체적인 구조를 잡기 위해 사용하는 것이고, 라이브러리는 개발을 하는 과정에서 필요한 기능을 구현하기 위해 사용하는 것입니다. 스프링과 스프링 부트? 스프링의 등장 배경 엔터프라이즈 어플리케이션이라는 용어는 대규모의 복잡한 데이터를 관리하는 애플리케이션입니다. 은행 시스템을 생각해보면, 몇 천만명의 사람이 한꺼번에 잔고를 조회하고 입금이나 출금 요청을 하거나 새로운 통장을 개설하기도 합.. 2023. 5. 30.
[프로그래머스] 뒤에 있는 큰 수 찾기 Java 풀이 조건 : 4 ≤ numbers의 길이 ≤ 1,000,000 위 조건때문에 시간 복잡도가 O(n^2)가 되면 타임아웃이 납니다. 따라서 이중포문 사용하면 안됨 public class Main { public static void main(String[] args) { int[] numbers = {9, 1, 5, 3, 6, 2}; int[] res = solution(numbers); for (int r : res) { System.out.print(r); } } public static int[] solution(int[] numbers) { int N = numbers.length; int[] results = new int[N]; Stack stack = new Stack(); stack.push(n.. 2023. 5. 28.
반응형