-
[Leetcode] 56. Merge Intervals코딩테스트 2021. 4. 27. 01:03
문제) Given an array of intervals where intervals[i] = [starti, endi], merge all overlapping intervals, and return an array of the non-overlapping intervals that cover all the intervals in the input. Example 1: Input: intervals = [[1,3],[2,6],[8,10],[15,18]] Output: [[1,6],[8,10],[15,18]] Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6]. Example 2: Input: intervals = [[..
-
[번역] Kubernetes의 resource memory limit 이해하기SW개발/Kubernetes 2021. 4. 26. 20:47
참고) 글을 좀 더 쉽게 이해하게 하기 위해 의역이 된 내용이 많습니다. 그리고 불필요해 보이는 내용은 빠져있고, 요약된 내용이 많으니 참고해주세요. 내가 쿠버네티스를 사용할 때, 테스트 단계에서 일어나지 않았던 이슈를 만나게 되었다. 그것은 바로 노드에 pod를 운영할만한 충분한 cpu나 memory가 없으면 pod가 pending 상태로 남아있게된다는 것이다. 노드에 cpu나 ram을 추가할 수 없을때, 어떻게 이 문제를 해결해야할까? 가장 단순한 답변은 노드를 하나 추가하는 것이다. 하지만 이것은 쿠버네티스의 가장 강력한 장점 중 하나인 "compute resource를 효율적으로 이용하는 것"을 잘 활용하지 못하는 것이다. 진짜 문제는 노드가 제공할 수 있는 resource가 너무 작은게 아니라 ..
-
[Leetcode] 395. Longest Substring with At Least K Repeating Characters코딩테스트 2021. 4. 25. 18:44
문제) Given a string s and an integer k, return the length of the longest substring of s such that the frequency of each character in this substring is greater than or equal to k. Example 1: Input: s = "aaabb", k = 3 Output: 3 Explanation: The longest substring is "aaa", as 'a' is repeated 3 times. Example 2: Input: s = "ababbc", k = 2 Output: 5 Explanation: The longest substring is "ababb", as 'a..
-
[Leetcode] 215. Kth Largest Element in an Array코딩테스트 2021. 4. 24. 16:53
문제) Given an integer array nums and an integer k, return the kth largest element in the array. Note that it is the kth largest element in the sorted order, not the kth distinct element. Example 1: Input: nums = [3,2,1,5,6,4], k = 2 Output: 5 Example 2: Input: nums = [3,2,3,1,2,4,5,5,6], k = 4 Output: 4 Constraints: 1
-
[Leetcode] 240. Search a 2D Matrix II코딩테스트 2021. 4. 20. 22:31
문제) Write an efficient algorithm that searches for a target value in an m x n integer matrix. The matrix has the following properties: Integers in each row are sorted in ascending from left to right. Integers in each column are sorted in ascending from top to bottom. Example 1: Input: matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5 Output: true ..
-
셸 정렬(Shell Sort)카테고리 없음 2021. 1. 31. 20:09
1. 셸 정렬이란? 셸 정렬은 삽입 정렬을 개선한 방법으로, 배열의 원소들을 정렬할 때 처음부터 끝까지 순서대로 방문하면서 원소를 정렬하지 않고, Gap을 주어 부분 리스트를 만든 후 정렬하는 방식을 말한다. 이 말이 무엇인지 아래 예제를 통해 살펴보자. 위의 예제에서 보여주는 특징은, 1) 'k'라고 하는 변수를 통해서 Gap을 조정한다. => 참고로 최초의 k는 보통 '배열의 길이/2'로 설정하며, 개발자가 값을 '배열의 길이/3' 또는 위와 같이 홀수로 결정하는 방법 등이 있다. 2) 'k'만큼 떨어진 값들을 정렬한다. 3) k가 1이 될 때까지 1,2번 과정을 반복한다. 이렇게 3가지로 압축 할 수 있다. 2. 성능비교(삽입정렬 / 셸 정렬) Name Best Avg Worst Run-time(정..
-
Intro Sort (인트로 정렬)개발기초/자료구조 2021. 1. 26. 01:02
일반적으로 퀵정렬은 평균적으로 O(n log n)이라는 시간복잡도를 갖습니다. 하지만 최악의 경우에는 O(n²)이라는 시간복잡도를 갖게되지요. 개발자들은 퀵정렬의 평균적이라는 장점을 살리고 최악의 경우를 보완하는 알고리즘을 만들고자 했습니다. 즉, 최악의 경우에도 O(n log n)을 만족하고자 하는 것인데요, 결국, 개발자들은 퀵정렬이 최악의 경우에도 시간복잡도가 O(n log n)이 되는 방법을 찾았습니다. 아이디어는 간단합니다. 퀵정렬을 사용하되 다른 알고리즘들과 혼합하여 사용하면 됩니다. 다만 특이한 점은 1차 임계값과 2차 임계값이 존재하여 각 알고리즘 사용 구간을 구분해준다는 점입니다. 맨 처음 정렬에는 퀵소트를 사용합니다. 그리고 재귀적으로 퀵소트를 사용하면서 분할되는 횟수를 스스로 모니터링..
-
[Golang] Mysql 연결하기개발언어/Go 2020. 10. 25. 20:00
1.DB 연결 Import "Github.com/go-sql-driver/mysql" // mysql 전용 라이브러리 import ... // 디비 커넥션 오픈 // 참고) func Open(driverName, dataSourceName string) (*DB, error) // 아래는 예시 db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@/dbname?parseTime=true", os.Getenv("MYSQLUSERNAME"), os.Getenv("MYSQLPASSWORD"))) ... (sql 작업) defer db.Close() // db 커넥션을 다 사용하면 닫아준다. 2. 테이블 생성 및 조작 (DDL, DML) // DDL, DML은 db.Exec 명령..