https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int money = sc.nextInt(); money = 1000 - money; int answer = 0; int coins = 0; int[] mon..
시작은 테스트 케이스는 통과하는 데, 반례가 뭔지 모르겠다 하지만, 정답을 푼 사람들의 답은 아주 간결했다. Arrays.sort(vv1, new Comparator() { @Override public int compare(T o1, T o2) { return 0; } }); 이 부분이 포인트. Arrays.sort 는 기본적으로 오름차순이지만, 아니라면 오버라이드를 통해 정렬 기준을 정해준다. 시간초과가 뜬 실패한 코드와 달리, 장황하게 for문을 안돌려도 된다. 내부적으로 Arrays.sort 가 처리하고 있겠지라고 생각해서 들어가 봤다. 왜 이거 쓰는지 궁금한 사람이 또 있었다. OKKY | 자바의 Arrays.sort는 왜 Dual-Pivot Quicksort를 사용하나요? 정렬공부를 하다 자바..
순차 및 병렬 Aggregate 작업을 지원하는 일련의 요소입니다. 다음 예에서는 Stream 및 IntStream을 사용한 집계 작업을 보여 줍니다. ✍ 자료가 있는 배열이나 컬렉션 또는 특정 범위 안에있는 일련의 숫자를 처리하는 기능이 미리 구현되어있음. ✍ 스트림을 생성하고, 중간 연산 조건을 지정하고, 최종 연산 처리. ✍ 그렇다고 해서, 기존 자료를 변경하거나, 생성된 스트림을 재사용 할 수는 없다. filter - 조건을 넣고 그 조건에 맞는 참인 경우 추출, 문자열 배열이 있을 때 문자열의 길이가 5이상인 경우를 추출한다면 다음과 같다. List sList = new ArrayList(); sList.stream().filter(s -> s.length() >= 5).forEach(s -> ..
✍ 금요일 오후 에러 발생했음. ☁ Tomcat로그를 보니 응답은 성공으로 주지만 소요 시간이 최소 10초 이상이 걸리고있는 상황이었다. ☁ 이전에는 잘 동작하더니 갑자기 느려지는 상황.. ☁ 특히 오래걸리는 API를 살펴봤고 LOG를 기록하는 테이블에 접근하기만 해도 속도가 현저히 떨어지는 현상이 있었다. ☁ DB와 관련된 문제임을 확인하고 바로 DB 상태를 체크. ☁ 전에도 이런 현상이 있던 적이 있어서, ☁ 1. 인덱스를 설정한 값이 잘못되었는지 체크. ☁ 2. API에서 쓰는 쿼리가 지나치게 속도를 많이 잡아먹는 지 체크. ✍ 위 두가지 상황은 아니었고, 2021년도 자료를 백업하고 테이블을 정리하려 했다. ✍ 자주 수정이 일어나는 데이터가 많은 테이블이면서, 또 INSERT를 많이 처리하는 테이..
✍ 막무가내로 알고리즘 문제를 풀다가 깨달았다. ✍ 내가 스택 이라는 자료구조를 많이 써보지 않았다는 것. 그래서 정리하고 넘어가려고 한다. ✍ 왜 정리하고 알고리즘 문제를 풀려고 하는가? ✍ 여러 자료구조와 알고리즘은 관련성이 크다. ✍ 문제를 풀고싶다? --> 고민한다 --> 무슨 방법으로 풀까 ? --> 이런 컬렉션을 쓰면 좋겠다! ✍ 를 생각하게된다. ✍ 하지만 그냥 구현 할 때 습관적으로 ArrayList를 쓰거나 대충 HashMap을 쓰거나.. ✍ 아닌 경우 TreeMap을 쓰거나 밖에 없다.. 부끄럽다.... 오늘은 크게 나누고 좀 더 세세한 정리를 기록하는 게 낫다고 본다. 크게 보자. 선형 - 비선형이 있다. 선형 : 리스트(llist) / 큐(queue) / 덱(deque) 비선형 : ..
✍ 아무것도 안입는 경우를 생각하는 게 조금 어려웠다. ✍ 옷의 가지수를 계산해서, map 타입에 ( key(의상종류) , value(개수) )를 넣어야 할 것이라고, 생각했지만 ✍ 안입는 경우가 있다는 것을 계산에 넣지 못 한 점이 아쉬웠음. ✍ 따라서 ( 의상 종류 , 개수+1 ) 로 계산하고, ☁ 전체 경우의 수 중에 하나도 ( 아무아무것ㅎ도 안입는 경우) 는 빼려고 했다. ☁ 아무것도 안입는 것 = 아무것도 안입고 + 아무것도 안입고 ... 이므로 1가지 경우의 수만 나오기 때문에.. public static int Solution (String[][] clothes) { int answer = 0; String[] tt = new String[clothes.length]; Map tempMap ..
✍ 최근에 로그4j2 이슈로 인해 패치를 했었음. 크론탭 확인 $ crontab -l 크론탭 수정 $ crontab -e ☁ 그래서 정리도 하고 설정도 좀 바꾸려한다. 로그파일이 너무 많아지고 용량도 많아져서 문제가 되기 전에 처리하자. $ crontab -l 명령어를 쳐서 크론탭 설정이 어떻게 되어있는지 위치부터 확인한다. 관리자 계정으로 크론탭을 확인. log4j 설정에 따라 파일이 넘어가는 시점에서 크론탭이 돌면서 파일을 tar.gz로 압축 백업을 했겠는데. 현재 패치 이후에는 👉 크론탭 설정을 바꾸던가.. log4j2 설정을 바꿔서 써지는 이름을 바꿔서 해결한다. 👉 **.log-%d{yyyy-MM-dd}-%i 로 수정했음. 해결되었다면, 다음 크론탭이 동작하는 시간에 제대로 되는지 확인 해봐야 ..
✍ 레벨 2 의 전화번호 목록 문제 / 프로그래머스 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 👉 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 맨 앞 문자열이 다른 번호의 접두어인가? 를 체크하는 문제 public static boolean solution (String[] phone_..