본문 바로가기

upcurve631

백준 6236 용돈 관리 (JAVA 자바 풀이) 백준 6236 용돈 관리 (JAVA 자바 풀이) 문제 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 하였다. 현우는 통장에서 K원을 인출하며, 통장에서 뺀 돈으로 하루를 보낼 수 있으면 그대로 사용하고, 모자라게 되면 남은 금액은 통장에 집어넣고 다시 K원을 인출한다. 다만 현우는 M이라는 숫자를 좋아하기 때문에, 정확히 M번을 맞추기 위해서 남은 금액이 그날 사용할 금액보다 많더라도 남은 금액은 통장에 집어넣고 다시 K원을 인출할 수 있다. 현우는 돈을 아끼기 위해 인출 금액 K를 최소화하기로 하였다. 현우가 필요한 최소 금액 K를 계산하는 프로그램을 작성하시오.. 2023. 12. 25.
백준 1654 랜선 자르기(JAVA 자바 풀이) 백준 1654 랜선 자르기(JAVA 자바 풀이) 문제 집에서 시간을 보내던 오영식은 박성원의 부름을 받고 급히 달려왔다. 박성원이 캠프 때 쓸 N개의 랜선을 만들어야 하는데 너무 바빠서 영식이에게 도움을 청했다. 이미 오영식은 자체적으로 K개의 랜선을 가지고 있다. 그러나 K개의 랜선은 길이가 제각각이다. 박성원은 랜선을 모두 N개의 같은 길이의 랜선으로 만들고 싶었기 때문에 K개의 랜선을 잘라서 만들어야 한다. 예를 들어 300cm 짜리 랜선에서 140cm 짜리 랜선을 두 개 잘라내면 20cm는 버려야 한다. (이미 자른 랜선은 붙일 수 없다.) 편의를 위해 랜선을 자르거나 만들 때 손실되는 길이는 없다고 가정하며, 기존의 K개의 랜선으로 N개의 랜선을 만들 수 없는 경우는 없다고 가정하자. 그리고 자.. 2023. 12. 25.
백준 2805 나무 자르기 (JAVA 자바 풀이) 백준 2805 나무 자르기 (JAVA 자바 풀이) 문제 상근이는 나무 M미터가 필요하다. 근처에 나무를 구입할 곳이 모두 망해버렸기 때문에, 정부에 벌목 허가를 요청했다. 정부는 상근이네 집 근처의 나무 한 줄에 대한 벌목 허가를 내주었고, 상근이는 새로 구입한 목재절단기를 이용해서 나무를 구할것이다. 목재절단기는 다음과 같이 동작한다. 먼저, 상근이는 절단기에 높이 H를 지정해야 한다. 높이를 지정하면 톱날이 땅으로부터 H미터 위로 올라간다. 그 다음, 한 줄에 연속해있는 나무를 모두 절단해버린다. 따라서, 높이가 H보다 큰 나무는 H 위의 부분이 잘릴 것이고, 낮은 나무는 잘리지 않을 것이다. 예를 들어, 한 줄에 연속해있는 나무의 높이가 20, 15, 10, 17이라고 하자. 상근이가 높이를 15로.. 2023. 12. 25.
[독서 기록] 필독 개발자 온보딩 가이드 문서를 읽어 배울 수 있는 것보다는 실전을 통해 배울 수 있는 것이 훨씬 많다. 그러므로 코딩을 하고 결과물을 배포해야 한다. - 46 코드가 지저분해지는 것을 소프트웨어 엔트로피라고 부른다. - 69 기술 부채란 기존 코드의 단점을 수정하면서 나중으로 미뤄둔 작업을 말한다. - 69 마이클 페더스는 자신의 저서 에서 기존 코드를 안전하게 수정할 수 있는 과정을 다음과 같이 소개했다. 1. 변경 지점을 확인한다. 2. 테스트할 지점을 확인한다. 3. 의존성을 나눈다. 4. 테스트를 작성한다. 5. 변경을 적용하고 리팩터링한다. - 74 재시도를 처리하는 가장 좋은 방법은 멱등성 있는 시스템을 구현하는 것이다. 멱등성이란 동일한 작업을 여러 번 실행해도 항상 같은 결과가 출력됨을 말한다. - 105 원격 .. 2023. 12. 21.
@RequestBody 컨텐츠 유실 문제 - 컨트롤러에도 디버깅이 찍히지 않으면 어디를 봐야할까? 개요 스프링 컨트롤러에서 @RequestBody가 붙은 Dto 매핑 에러를 다룹니다. 스프링에서 ArgumentResolving 하는 로직을 확실하게 이해하고 있지 못했을 때라서 해당 에러를 만났을 때 긴 시간 삽질을 했습니다. 본 글에서는 제가 해당 에러를 다루면서 겪었던 과정과 그와 관련해서 스프링 컨텍스트 공부한 내용을 소개합니다. 실제 용어나 코드 중 일부분은 컨셉용으로 대체하였습니다. 에러 메시지와 코드 배경 09:37:13.054 [DEBUG] [XNIO-2 task-1] [.w.s.m.m.a.HttpEntityMethodProcessor] - Nothing to write: null body 09:37:13.055 [ WARN] [XNIO-2 task-1] [.a.ExceptionHandle.. 2023. 12. 21.