본문 바로가기
  • 개발하는 곰돌이

2023/0126

[Kotlin] 백준 9080 : PC방 요금 문제 링크 9080번: PC방 요금 현성이는 요즘 LINEAR 2라는 온라인 게임에 빠져있다. PC방에 가서 게임을 즐기는데, 자주 가는 PC방의 요금체계는 다음과 같다. 일반 요금으로 시간당 1000원 씩을 받으며, 야간 정액을 끊으면 5000원 www.acmicpc.net 문제 해설 분기에 따라 요금을 계산해야한다. 먼저 계산을 수월하게 하기 위해 시간을 분으로 통합한다. 그리고 분기에 따라 다음의 계산을 수행한다. 현재 시간이 22시~3시면서 남은 플레이 시간이 5시간 이상인 경우 : 야간 정액이 이득이기 때문에 8시가 될 때까지 남은 플레이 시간을 모두 소진하고 요금에 5천원을 추가한다. 그 외의 경우 3시~8시인 경우 : 남은 플레이 시간이 5시간 이상이더라도 야간 정액을 이용할 수 있는 시간이.. 2023. 1. 12.
[JUnit5] DB호출 테스트 중 발생한 No ParameterResolver registered for parameter in constructor 에러 해결 에러 발생 배경 JUnit5로 DB 호출 테스트를 하는 도중에 다음과 같은 에러가 발생했다. No ParameterResolver registered for parameter [com.settlement.mapper.TestMapper testMapper] in constructor [public com.settlement.controller.TestController(com.settlement.mapper.TestMapper)]. org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [com.settlement.mapper.TestMapper testMapper] .. 2023. 1. 11.
[Kotlin] 백준 21773 : 가희와 프로세스 1 문제 링크 21773번: 가희와 프로세스 1 1초일 때 부터 4초일 때 상황을 그림으로 나타내면 아래와 같습니다. 아래 그림에서 주황색은 특정 시점에 스케쥴러가 선택한 프로세스를 의미합니다. www.acmicpc.net 문제 해설 우선순위 큐와 Comparable 인터페이스를 구현한 클래스를 사용하여 답을 찾아야 한다. 문제를 해결하는 과정은 다음과 같다. 각 프로세스의 우선순위가 같다면 id가 낮은 순으로, 다르다면 우선순위를 높은 순으로 정렬하도록 Comparable 인터페이스를 구현한 클래스를 선언한다. 우선순위 큐에 입력을 토대로 생성한 프로세스 객체를 모두 삽입한다. 우선순위 큐의 Root 요소를 꺼내어 다음 연산을 수행한다. null이라면(= 스케줄러가 비어있다면) 반복문을 종료한다. 꺼낸 프.. 2023. 1. 10.
[Kotlin] 백준 2757 : 엑셀 문제 링크 2757번: 엑셀 입력은 여러 줄이며, RnCm형태이다. n은 행 번호 (1 2023. 1. 9.
[Kotlin] 백준 25497 : 기술 연계마스터 임스 문제 링크 25497번: 기술 연계마스터 임스 $1$, $2$, $S$ - $K$, $2$로 스킬을 성공적으로 총 4번 사용했다. www.acmicpc.net 문제 해설 이전에 많이 나왔던 괄호 짝 맞추기와 비슷하게 스택을 활용하는 문제이다. 연계 기술 LR과 SK의 짝을 맞춰서 기술 성공 횟수를 카운트해야 하는데, 문제에 연계 기술을 사용할 때 사전 기술과 본 기술 사이에는 다른 기술을 사용해도 연계가 정상적으로 이루어진다는 언급이 있다. 즉, LSRK이나 SLKR 등과 같이 L, R, S, K가 섞여있어도 상관없다는 것이다. 이를 구현하기 위해 LR의 짝을 맞출 스택과 SK의 짝을 맞출 스택, 총 2개의 스택을 선언하여 문제를 해결한다. 연계 기술은 사전 기술과 본 기술이 모두 성공해야 1회로 카운트.. 2023. 1. 6.
[Kotlin] 백준 17952 : 과제는 끝나지 않아! 문제 링크 17952번: 과제는 끝나지 않아! 성애는 이번 학기에 전공을 정말 많이 듣는다. 이로 인해 거의 매일을 과제를 하면서 보내고 있다. 그런데도 과제가 줄어들 기미가 보이지 않는데, 바로 분단위로 과제가 추가되고 있기 때문이 www.acmicpc.net 문제 해설 문제의 규칙 1, 2번에 의해 스택을 사용하면 된다는 것을 알 수 있다. 과제의 점수와 남은 시간을 나타내는 객체를 담는 스택을 선언한 후 입력에 따라 스택에서 연산을 진행한다. 0이 입력되어 과제가 주어지지 않았다면 스택의 가장 윗부분 과제의 남은 시간을 1 줄인다. 1이 입력되어 과제가 주어졌다면 스택에 새로운 과제를 추가한다. 이 때, 과제를 받자마자 바로 시작하기 때문에 과제의 남은 시간에서 1을 뺀 값을 추가해야 한다. 각 연.. 2023. 1. 5.
[Spring Boot] application.properties와 application.yml의 차이점 목차 개요 Spring Boot 프로젝트에서는 일반적으로 프로젝트의 각종 설정을 application.properties 또는 application.yml 파일을 통해 하게된다. 기본적으로 Spring Initializr를 통해 Spring Boot 프로젝트를 생성하면 application.properties가 생성되지만, Spring Boot 설정을 위해 구글링을 하다 보면 application.yml에 대한 내용이 상당히 많이 나온다. 따라서, application.properties와 application.yml의 차이를 정리하려고 한다. properties와 yml의 차이점 properties와 yml의 대표적인 차이는 내부 구조가 있다. properties의 경우엔 각 줄마다 key=value의.. 2023. 1. 4.
[Kotlin] 백준 18917 : 수열과 쿼리 38 문제 링크 18917번: 수열과 쿼리 38 3번째 쿼리가 끝난 이후 배열의 상태는 [0, 3, 1, 4]이다. 6번째 쿼리가 끝난 이후 배열의 상태는 [0, 3, 1, 4, 1]이다. 10번째 쿼리가 끝난 이후 배열의 상태는 [0, 3, 1]이다. www.acmicpc.net 문제 해설 수열, 배열이라는 말이 있어서 실제로 리스트를 만들어서 구현하려고 할 수 있는데 함정이 있다. 쿼리의 개수가 최대 50만개이기 떄문에 실제 리스트에 25만개의 요소를 추가하고, 합이나 XOR 결과를 25만번 출력하게 되면 \(250,001\times250,000=62,500,250,000\)가 되어 약 625초의 시간이 걸리게 된다. 따라서, 실제 리스트를 구현하지 않고 답을 구해야 한다. 문제에서 요구하는 출력은 모든 .. 2023. 1. 3.