우당탕탕 코딩주머니
article thumbnail
[프로그래머스] 과일 장수
코딩/코딩테스트 2023. 7. 5. 21:51

1. 문제 설명 2. 코드 import java.util.Arrays; class Solution { public int solution(int k, int m, int[] score) { int answer = 0; Arrays.sort(score); int n = score.length; for (int i = n - 1; i >= m - 1; i -= m) { answer += m * score[i - m + 1]; } return answer; } } 3. 문제 해석 1. 각 상자의 가격을 최대로 만들어야 한다. 2. 상자에 담긴 사과들 중 가장 낮은 점수가 최대가 되도록 상자를 구성 -> 내림차순으로 정렬 후 가장 높은 점수의 사과부터 m개씩 담는 그리디 알고리즘을 사용 4. 보다 객체 지향 적..

article thumbnail
[프로그래머스] 푸드 파이트 대회
코딩/코딩테스트 2023. 6. 24. 22:31

문제 코드 class Solution { public String solution(int[] food) { StringBuilder left = new StringBuilder(); StringBuilder right = new StringBuilder(); for (int i = 1; i < food.length; i++) { int half = food[i] / 2; food[i] -= half * 2; for (int j = 0; j < half; j++) { left.append(i); right.insert(0, i); } } StringBuilder answer = left.append(0).append(right); return answer.toString(); } } 문제 해석 두 선수가 ..

Multi Thread(대용량 Insert)
JAVA/개인공부 2023. 6. 24. 21:48

대용량 insert를 할때 가져오는 list의 값이 많기 때문에 guava의 library를 사용한다(google)에서 제공을 해준다. List listByGuava = Lists.partition(insertList, insertList.size() / 4); 내가 가져오는 리스트를 partition으로 나눈다 위의 코드에서는 4분할을 한다. 참고 사이트 [Java] List 일정 비율로 분할하는 방법 이때 listByguava는 4분할이 된 리스트가 하나하나 저장이 되며 나는 이걸로 하나의 thread에 하나의 리스트로 보내기로했다. List first = listByGuava.get(0); List second = listByGuava.get(1); List third = listByGuava.ge..

article thumbnail
[프로그래머스] x만큼 간격이 있는 n개의 숫자
코딩/코딩테스트 2023. 6. 24. 21:42

문제 코드 import java.util.Arrays; import java.util.stream.IntStream; class Solution { public long[] solution(int x, int n) { return IntStream.range(0, n) .mapToLong(i -> (long) x * (i + 1)) .toArray(); } }