본문 바로가기

전체 글657

[codeground] 123. 다이어트 codeground - Practice - SCPC 6회 예선 - 123. 다이어트 문제 : https://www.codeground.org/practice/practiceProblemList 그리디로 풀었다. A 식당, B 식당메뉴들을 오름차순 정렬한다. 가격이 작은 K개의 메뉴들을 가져와서 A 식당 메뉴의 최저가, B 식당 메뉴의 최고가들을 차례로 페어로 묶는다. 페어로 묶은 메뉴 가격들의 합 중 최고가가 정답이 된다. 시간복잡도는 O(NlogN + K). 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/codeground/123.%20%EB%8B%A4%EC%9D%B4%EC%96%B4%ED%8A%B8.cpp 2021. 7. 6.
[leetcode]1047. Remove All Adjacent Duplicates In String 문제 : https://leetcode.com/problems/remove-all-adjacent-duplicates-in-string/ 문자열을 탐색하면서 정답 문자열을 만든다. 만약 탐색중인 문자가 정답 문자열의 마지막 문자와 같다면 문자를 추가하지 않고 정답 문자열의 마지막 문자를 삭제한다. 정답문자열이 비어있거나 탐색중인 문자와 정답 문자열의 마지막 문자와 다르다면 정답문자열에 탐색중인 문자를 추가한다. 시간복잡도는 O(N). N = |입력 문자열| 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/easy/1047.%20Remove%20All%20Adjacent%20Duplicates%20In%20String.cpp 2021. 6. 28.
[Spring][Kotlin] Main class name has not been configured and it could not be resolved Execution failed for task ':bootRun'. > Failed to calculate the value of task ':bootRun' property 'mainClass'. > Main class name has not been configured and it could not be resolved 어플리케이션 띄울때, main class를 못찾는다고 한다. // build.gradle.kts springBoot { mainClass.set("com.withhamit.chatting.ChattingApplicationKt") } mainClass 위치를 명시적으로 지정해준다. 코틀린으로 작성한 경우 자바로 컴파일될때 파일명에 Kt가 붙기 때문에 ChattingApplication.. 2021. 6. 26.
[Gradle][Error] Cannot lock execution history cache ... as it has already been locked by this process. Cannot lock execution history cache ([git 경로]\chatting-server\.gradle\6.8\executionHistory) as it has already been locked by this process. 어플리케이션 띄운 후 종료하고 다시 띄웠을 때 위와 같은 에러가 발생했다. github 경로에 있는 .gradle 파일이 문제라는 식으로 보이는데 global .gradle 폴더(C:\Users\[사용자이름]\.gradle)의 문제이다. global .gradle 폴더를 삭제해줘도 되고 // gradle.properties org.gradle.caching=false gradle 캐싱을 사용하지 않는다는 설정을 넣어서 돌려도 해결된다. 항상 캐싱을 사용안하면 .. 2021. 6. 26.
[leetcode] 684. Redundant Connection 문제 : https://leetcode.com/problems/redundant-connection/ n개의 노드와 n개의 간선으로 이루어진 무방향 그래프가 주어질 때, n개의 노드로 이루어진 트리가 될 수 있도록 제거해야 하는 간선을 구하여라. 조건에 그래프들은 연결되어 있고 노드가 n개인데 간선도 n개라고 하니, 트리의 특징 중 하나인 간선의 개수는 정점 개수 - 1 이다.를 생각하면 정답이 되는 간선은 1개가 나올 수 있고. 이 간선은 사이클을 만듬을 알아낼 수 있다. 크루스칼 알고리즘 구현에서 사이클이 생성됨을 알아내기 위해 유니온 파인드를 사용했었다. 이를 응용하여, 입력으로 주어지는 간선들을 Union-Find 의 Union 연산으로 하나의 집합으로 합치면서 이미 같은 집합인데 Union 연산.. 2021. 6. 26.
유니온 파인드(Union-Find) 유니온 파인드(Union-Find)는 집합을 표현하기 위한 자료구조입니다. 이를 표현하기 위해 트리에서 부모노드를 저장하는 배열을 만듭니다. 부모노드가 없는 루트노드인 경우는 자기자신을 저장합니다. 이때 최상위 부모노드가 같은 값들이 같은 집합에 속하게 됩니다. [그림 1]에서는 1, 2, 3이 같은 집합. 4, 5가 같은 집합입니다. 주의할 점은, 부모노드가 아닌 최상위 부모노드가 같은 노드들이 같은 집합에 속합니다. [그림 2]에서 노드 4와 노드 2는 모두 같은 집합에 속하지만 부모노드 배열만 봐서는 같은 집합에 속하는지 알 수 없습니다. 같은 집합에 속하는지 알기 위해서는 각 노드들의 최상위 부모노드 배열을 알아야 합니다. 노드 4의 부모노드는 3이지만 최상위부모노드는 1이 됩니다. 다른 노드들의.. 2021. 6. 26.