일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 자바 가비지컬렉션
- 자바reduce
- 자바리스트정렬
- 모놀리틱 아키텍처
- Programmers가장큰수
- 스프링핵심요소
- webrtc
- 자바foreach
- openvidu
- 자바Comparator
- 자바배열정렬
- 객체지향추상화
- 자바스크립트foreach
- node의존성주입
- 자바스크립트map
- Programmers도둑질
- 객체지향다형성
- 클라우드타입
- 자바filter
- 객체지향solid
- 자바스크립트filter
- 자바Comparable
- 프로그래머스도둑질
- 프로젝트회고
- 도둑질자바
- 프로그래머스가장큰수
- 자바스크립트reduce
- 우선순위큐자바
- 자바stream
- 팀프로젝트
- Today
- Total
목록Algorithm (4)
I'm pine thank you and you?
💜 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🧐 PriorityQueue(우선순위 큐) in Java 자료구조 중 하나 일반적인 큐처럼 선입선출(FIFO)인데, 여기에 우선순위 조건이 추가된 자료구조이다. 즉, 데이터가 들어올때마다 우선순위에 맞게 알아서 정렬되고 우선순위가 높은 것을 먼저 보내는 구조! 따라서, 우선순위 큐를 구현할 때는 반드시 Comparator 또는 Comparable 인터페이스를 구현 해야 한다. Compat..
💜 문제 🤔 문제 분석 집이 원형으로 배치되어 있기 때문에 첫 번째 집 위치를 정의할 수 없다. 그러므로 money 배열의 첫번째 값이 첫 번째 집이라고 두고 두 가지 상황으로 분류할 수 있다. a. 첫번째 집을 터는 경우 b. 첫번째 집을 털지 않는 경우 이 두 경우로 분류하여 Dynamic Programming을 해보자. 📝 풀이 1. 테이블 정의 n번째 집을 털었을 때 총 훔친 돈의 최댓값이 들어갈 배열 정의 int[] dp_first = new int[len]; // 첫번째 집을 터는 경우 int[] dp_second = new int[len]; // 첫번째 집을 털지 않는 경우 2. 초기값 세팅 각 집에 있는 돈을 넣어준다. for (int i = 0; i < len; i++) { dp_firs..
💜 문제 🤔 문제 분석 numbers 배열을 특정한 조건에 따라 정렬하여 붙이는 문제이다. 자바 내장함수인 sort를 이용하되, 정렬 조건을 Comparable 또는 Comparator를 사용하여 직접 구현하자. 더보기 public interface Comparable int compareTo(T o) 자기 자신과 매개변수를 비교 Comparable은 Lang 패키지에 존재하여 import를 하지 않고도 사용가능하다. 더보기 public interface Comparator int compare(T o1, T o2); 두 매개변수를 비교 자기 자신의 상태가 어떻던 상관없이 파라미터로 들어오는 두 객체를 비교하는 것 📝 풀이 1. numbers 배열을 문자열로 바꿔서 리스트에 저장 2. 리스트를 Compa..
정의 기준값을 선정해 해당값보다 작은 데이터와 큰 데이터로 분류하는 것을 반복해 정렬하는 알고리즘 여기서 기준값을 보통 pivot이라 칭한다. 시간복잡도는 O(nlogn) 정렬 방법 데이터를 분할하는 pivot을 정한다. pivot을 기준으로 다음 과정을 거쳐 2개의 집합으로 분리한다. pivot을 기준으로 start와 end를 잡는다. (pivot이 들어갈 위치를 찾는 것) start: pivot보다 큰 데이터가 나올때까지 start를 오른쪽으로 이동 end: pivot보다 작은 데이터가 나올때까지 end를 왼쪽으로 이동 start와 end를 swap start와 end가 만날때까지 위의 1~3번을 반복 start와 end가 만나면, 크기 비교 후 swap pivot을 start와 end 사이에 삽입 ..