본문 바로가기

분류 전체보기138

[프로그래머스] 테이블 해시 함수 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.
[프로그래머스] 과제 진행하기 Java 풀이 한줄 요약 : HH:mm 포맷이 나오면 '시간*60+분'을 사용한다. stack사용 첫 번째 풀이) 이 풀이로 통과 했으나, 다른 사람들은 시간 다루는 부분을 어떻게 했는지 확인해봤다. 나는 12:20 과 같이 시간으로 들어오는 값을 HH:mm 타입의 dateformat으로 계산했는데, 다른사람들은 '시간*60+분' 으로 minutes로 변경해서 start를 저장해서 사용하는 것을 확인했다. 나중에 문제 풀 때 도움이 많이 될 것 같아서 이 방법으로 변경하기로 결정 import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; public class Main { public static void mai.. 2023. 5. 27.
반응형