[99클럽] 코테 스터디 21일차 TIL - 이분탐색(35. Search Insert Position)
·
코딩 테스트/99클럽
문제문제 설명정렬된 nums[]와 target 정수가 주어진다.nums[] 배열에서 target 정수를 찾으면 반환하고찾지 못한다면 만약 target 정수가 nums[] 배열에 있다면 있어야 하는 index를 반환하라.시간 복잡도가 O(log n)인 알고리즘을 사용해야 한다.(이분탐색)예시Example 1:Input: nums = [1,3,5,6], target = 5Output: 2Example 2:Input: nums = [1,3,5,6], target = 2Output: 1Example 3:Input: nums = [1,3,5,6], target = 7Output: 4제약 조건1 -104 nums contains distinct values sorted in ascending order.-104 풀..
[99클럽] 코테 스터디 20일차 TIL - DP(1277. Count Square Submatrices with All Ones)
·
코딩 테스트/99클럽
문제Count Square Submatrices with All Oneshttps://leetcode.com/problems/count-square-submatrices-with-all-ones/풀이 방법행, 열 부분합 배열을 만든다.이중 for로 matrix의 모든 값을 정사각형의 모서리로 가정하고 탐색한다.이때 가능한 정사각형의 최대 크기를 구해서 크기가 1, 2, ... 최대 크기의 정사각형의 개수를 구한다.딴짓하다 까먹었다.코드class Solution { public int countSquares(int[][] matrix) { int row = matrix.length; int column = matrix[0].length; int[][] rowSum..
[99클럽] 코테 스터디 19일차 TIL - DP(1043. Partition Array for Maximum Sum)
·
코딩 테스트/99클럽
문제문제 설명입력정수 배열 arr가 주어집니다.정수 k가 주어집니다. (1 목표배열 arr를 몇 개의 부분 배열로 분할하여 각 부분 배열의 크기가 최대 k가 되도록 합니다.각 부분 배열의 합을 최대화하는 것이 목표입니다.제한 사항1 0 1 예시Example 1Input: arr = [1,15,7,9,2,5,10], k = 3Output: 84Explanation: arr becomes [15,15,15,9,10,10,10]Example 2Input: arr = [1,4,1,5,7,3,6,1,9,9,3], k = 4Output: 83Example 3Input: arr = [1], k = 1Output: 1풀이 방법풀이 핵심arr[o]~arr[i]까지는 최대 합을 계산하는 dp[i] 배열을 arr[] 길이만..
[99클럽] 코테 스터디 17일차 TIL - DP 재귀(894. All Possible Full Binary Trees)
·
코딩 테스트/99클럽
문제문제 설명int n이 주어질 때, n개의 노드로 가능한 모든 완전 이진 트리를 만들어라.노드의 값은 모두 0이다.제한 사항무인도에 갇힌 사람은 1명 이상 50,000명 이하입니다.각 사람의 몸무게는 40kg 이상 240kg 이하입니다.구명보트의 무게 제한은 40kg 이상 240kg 이하입니다.구명보트의 무게 제한은 항상 사람들의 몸무게 중 최댓값보다 크게 주어지므로 사람들을 구출할 수 없는 경우는 없습니다.예시Input: n = 7Output: [[0,0,0,null,null,0,0,null,null,0,0],[0,0,0,null,null,0,0,0,0],[0,0,0,0,0,0,0],[0,0,0,0,0,null,null,null,null,0,0],[0,0,0,0,0,null,null,0,0]]Exam..
[99클럽] 코테 스터디 16일차 TIL - Greedy(프로그래머스 구명보트 Lv2)
·
코딩 테스트/99클럽
문제문제 설명무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다.예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다.구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다.사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개수의 최솟값을 return 하도록 solution 함수를 작성해주세요.제..
[99클럽] 코테 스터디 15일차 TIL - Greedy
·
코딩 테스트/99클럽
문제문제 설명조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다.ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA조이스틱을 각 방향으로 움직이면 아래와 같습니다.▲ - 다음 알파벳▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로)◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서)▶ - 커서를 오른쪽으로 이동 (마지막 위치에서 오른쪽으로 이동하면 첫 번째 문자에 커서)예를 들어 아래의 방법으로 "JAZ"를 만들 수 있습니다.첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다.조이스틱을 왼쪽으로 1번 조작하여 커서를 마지막 문자 위치로 이동시킵니다.마지막 위치에서 조이스틱을 아래로 1번 조작하여 Z를 완성합니다.따라..