Home

[Spring boot] Failed to load driver class

Spring Boot 취약점 이슈로 tomcat 업그레이드 하려다 발생한 에러.. 잘 동작하던 어플리케이션이 갑자기 에러나서 당황스러웠다. Failed to bind properties under '' to com.zaxxer.hikari.HikariDataSource: Property: driver-class-name Value: com.mysql.cj.jdbc.Driver Origin: "driverClassName" from property source "source" Reason: Failed to load driver class com.mysql.cj.jdbc.Dr...

Read more

[프로그래머스] Level3 - 합승 택시 요금, 2021 카카오 문제

> 문제 문제 : [합승 택시 요금 2021 카카오 문제] > 문제풀이 최단거리 문제로 다익스트라 알고리즘을 활용하였다. 플로이드 와샬( O(V^3) )로도 풀 수 있지만 아무래도 우선순위 큐 다익스트라( O(ElogV) )가 훨씬 빠른 듯 하다. 세 정점 A, B, S에서의 최단거리를 구하였다. 소스는 다음과 같다. import java.util.*; class Solution { static int N; static int[] aNodes, bNodes, sNodes; static int[][] map; static void...

Read more

[프로그래머스] Level3 - 스티커 모으기(2)

> 문제 문제 : [스티커 모으기(2)] > 문제풀이 첫 번째 스티커부터 뜯어낼 경우와 두번째 스티커부터 뜯어낼 경우를 나눠 DP로 풀이 하였다. 소스는 다음과 같다. import java.util.*; class Solution { public int solution(int sticker[]) { if(sticker.length == 1) return sticker[0]; int[] dp1 = new int[sticker.length]; int[] dp2 = new int[sticker.length]; ...

Read more

[프로그래머스] Level4 - 자동완성 2018 카카오 문제

> 문제 문제 : [자동완성 2018 카카오 문제] > 문제풀이 Trie 자료구조를 구현하여 풀이하였다. 입력해야 할 문자의 수는 dfs로 탐색하였으며, cnt가 1이거나 마지막 문장인 경우(lastChar==true)의 depth를 결과값에 더해가며 풀이하였다. cnt가 1인경우는 문장이 하나밖에 없기 때문에 더이상 탐색할 필요가 없으며, 마지막 문장인 경우(lastChar==true)에는 이어서 문장이 더 있을 수 있기 때문에 더 탐색한다. 소스는 다음과 같다. import java.util.*; class Solution { stat...

Read more

[프로그래머스] Level3 - 최고의 집합

> 문제 문제 : [최고의 집합] > 문제풀이 접근방법은 원소들의 합 s 를 n개로 나눈 몫을 시작으로 +1씩 증가하여 원소를 나열하는것으로 접근하였다. 하지만 n=2, s=8 인경우 [4,4] 의 결과를 도출해야하기 때문에 +1씩 증가하면 안되고, s와n을 감소하면서 반복연산 해주었다. 소스는 다음과 같다. import java.util.*; class Solution { public int[] solution(int n, int s) { int[] answer = s/n == 0 ? new int[]{-1} : new int[n]; ...

Read more

[프로그래머스] Level3 - 보석 쇼핑

> 문제 문제 : [보석 쇼핑] > 문제풀이 보석 갯수를 Set으로 구한다. 이를 Size라고 한다. 인덱스 0부터 탐색을 시작한다. Size만큼의 보석을 찾았을 때를 기점(tmpE)으로 반대로 다시 탐색한다. 다시 Size만큼 보석을 찾았을 때(tmpS)가 모든 보석을 포함하는 범위가 된다. 하지만 최소의 범위가 아니기 때문에 tmpS+1부터 탐색을 반복한다. 투포인트 방식으로 풀지 않았기 때문에 시간은 상대적으로 조금 더 걸리는 듯 하다. import java.util.*; class Solution { publi...

Read more

[프로그래머스] Level2 - 큰 수 만들기

> 문제 문제 : [큰 수 만들기] > 문제풀이 큰 자리수의 값을 최댓값으로 만들면 된다. 지울 수 있는 값 K의 갯수만큼 탐색하여 최댓값을 찾아 나머지 값을 지워나갔다. “4177252841”, k=4 를 예시로, index 0~4 (K+1) 까지 탐색하여 최댓값을 찾는다. 여기서 index 4 까지 탐색하는 이유는, 최댓값 이전의 값을 지우기 때문이다. 풀이에서는 최댓값을 StringBuilder에 추가하고 이전의 갯수를 K값에서 줄여나갔다. 4 1 7 7 2 ( K=4 ) max 7, K = 4 - 2 7 2 5 ( K = 2 ) max ...

Read more

[프로그래머스] Level2 - 멀쩡한 사각형

> 문제 문제 : [멀쩡한 사각형] > 문제풀이 W, H 값이 1억 이하의 자연수이다. 분명 배열을 만들어서 풀이하지는 않을 것이다. 최대 공약수 또는 최소 공배수를 사용한 방법으로 접근해 보았다. 대각선으로 잘랐을 때, 대각선을 꼭지점으로 한 덩어리를 볼 수 있다. 예시에 따라 8,12 값이 주어졌을 때 네 덩어리를 볼 수 있는데, 이는 w,h값의 최대 공약수가 될 것이다. 정사각형인 4,4 값 역시 네 덩어리로 최대 공약수 4가 나올 수 있다. 이를 활용하여 덩어리는 구했고, 그 안에 대각선을 포함한 사각형은 어떻게 구할까.. 대각선...

Read more