Algorithm 85

99클럽 코테 스터디 12일차 35. Search Insert Position

https://leetcode.com/problems/search-insert-position/description/ 정수들이 오름차순으로 정렬된 배열과 타겟 값을 입력으로 받아, 타겟이 발견되면 그 인덱스를 반환하세요. 만약 타겟이 발견되지 않으면, 타겟이 정렬된 순서에 삽입될 위치의 인덱스를 반환하세요. 알고리즘은 O(log n) 시간 복잡도로 작성해야 합니다.예제 1:입력: nums = [1,3,5,6], target = 5 출력: 2예제 2:입력: nums = [1,3,5,6], target = 2 출력: 1예제 3:입력: nums = [1,3,5,6], target = 7 출력: 4예제 4:입력: nums = [1,3,5,6], target = 0 출력: 0제약 조건:배열 nums의 길이는 1 ..

Algorithm/릿코드 2024.06.10

99클럽 코테 스터디 11일차 1025. Divisor Game

문제: Divisor Game (약수 게임)https://leetcode.com/problems/divisor-game/description/ 설명:Alice와 Bob는 게임을 하고 있습니다. 게임의 규칙은 다음과 같습니다:Alice와 Bob은 서로 번갈아 가며 숫자 N을 가지고 게임을 시작합니다. Alice가 먼저 시작합니다.턴마다 현재 숫자 N에서 1부터 N-1까지의 양의 정수 x 중에서 N % x == 0을 만족하는 x를 선택해야 합니다.선택한 x를 N에서 빼서 새로운 숫자 N - x로 만듭니다.새로운 숫자 N - x를 가지고 다음 플레이어가 자신의 턴을 진행합니다.어떤 플레이어가 더 이상 유효한 움직임을 할 수 없는 경우, 그 플레이어는 패배합니다.주어진 숫자 N이 주어졌을 때, Alice가 게임..

Algorithm/릿코드 2024.06.10

99클럽 코테 스터디 10일차 509. Fibonacci Number

509. Fibonacci Number 설명:피보나치 수는 0과 1로 시작하며, 이후의 숫자는 이전 두 숫자의 합으로 정의됩니다. 즉, 피보나치 수열은 다음과 같이 정의됩니다:F(0) = 0F(1) = 1F(n) = F(n - 1) + F(n - 2) (n >= 2)주어진 정수 n이 주어졌을 때, F(n)을 구하세요.    class Solution: def fib(self, n: int) -> int: if n  초기값 설정 : n이 0이거나 1일 경우, 해당 숫자를 직접 반환                      a와 b를 0과 1로 초기화(두 변수는 F(n-2)와 F(n-1)을 나타냄)for _ in range(2, n + 1): a, b = b, a + b2부터 n까지 반복..

Algorithm/릿코드 2024.06.09

99클럽 코테 스터디 9일차 118. Pascal's Triangle

문제: 파스칼의 삼각형설명:파스칼의 삼각형은 다음과 같은 성질을 갖는 삼각형 모양의 배열입니다:삼각형의 각 행은 왼쪽에서 오른쪽으로 번호를 매긴다(0번째 행, 1번째 행, ...).각 행의 처음과 마지막 요소는 1이다.내부의 각 요소는 바로 위 행의 왼쪽 요소와 오른쪽 요소의 합으로 이루어져 있다.다음은 파스칼의 삼각형의 처음 6개 행의 예시입니다[ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1],[1,5,10,10,5,1]] 이 삼각형의 행 수를 나타내는 정수 numRows가 주어졌을 때, numRows 행을 포함하는 파스칼의 삼각형을 생성하시오.  답안class Solution: def generate(self, numRows: int) -> Li..

Algorithm/릿코드 2024.06.08

99클럽 코테 스터디 8일차 338. counting bits

338. counting bits문제 설명: 비트 개수 세기 (Counting Bits)문제: 0부터 n까지의 각 숫자에 대해, 2진수 표현에서 1의 개수를 담고 있는 배열을 구하시오.예시:입력: n = 2 출력: [0, 1, 1] 설명:0 → 0 (1의 개수: 0)1 → 1 (1의 개수: 1)2 → 10 (1의 개수: 1)입력: n = 5 출력: [0, 1, 1, 2, 1, 2] 설명:0 → 0 (1의 개수: 0)1 → 1 (1의 개수: 1)2 → 10 (1의 개수: 1)3 → 11 (1의 개수: 2)4 → 100 (1의 개수: 1)5 → 101 (1의 개수: 2)제약 조건:0 ≤ n ≤ 10^5  문제 설명주어진 숫자 n에 대해 0부터 n까지의 각 숫자에 대해 2진수로 변환했을 때 1의 개수를 구한다..

Algorithm/릿코드 2024.06.07

99클럽 코테 스터디 7일차 1221. Split a String in Balanced Strings

https://leetcode.com/problems/split-a-string-in-balanced-strings/description/ 문제 설명주어진 문자열 s를 균형 잡힌 문자열로 나누는 작업을 수행해야 합니다. 여기서 균형 잡힌 문자열은 L의 수와 R의 수가 동일한 문자열입니다. 가능한 많은 균형 잡힌 문자열로 나누고, 나눌 수 있는 문자열의 개수를 반환하세요.예제입력: s = "RLRRLLRLRL" 출력: 4 설명: RL, RRLL, RL, RL로 나눌 수 있습니다.입력: s = "RLLLLRRRLR" 출력: 3 설명: RL, LLLRRR, LR로 나눌 수 있습니다.입력: s = "LLLLRRRR" 출력: 1 설명: LLLLRRRR로 나눌 수 있습니다.제약 조건1 s[i]는 'L' 또는 'R'..

Algorithm/릿코드 2024.06.05

99클럽 코테 스터디 6일차 체육복

def solution(n, lost, reserve): # 여벌 체육복이 있지만 도난당한 학생을 제외 reserve_set = set(reserve) - set(lost) lost_set = set(lost) - set(reserve) # 체육복을 빌려주는 과정 for c in reserve_set: if c-1 in lost_set: lost_set.remove(c-1) elif c+1 in lost_set: lost_set.remove(c+1) # 최종적으로 체육복을 입을 수 있는 학생의 수 answer = n - len(lost_set) return answer 해설 set 함수와 remov..

99클럽 코테 스터디 5일차 104. Maximum Depth of Binary Tree

이진 트리의 최대 깊이주어진 이진 트리의 루트 노드가 주어집니다. 트리의 최대 깊이를 구하세요.최대 깊이란?루트 노드에서 가장 먼 리프 노드까지의 경로에 있는 노드의 수입니다.  풀이재귀적으로 트리를 탐색 후, 각 노드의 최대 깊이를 계산하는 방법을 사용하였다. root가 None이면(트리가 비어있으면) 0을 반환하였고, root의 왼쪽 자식과 오른쪽 자식에 대해 각각 maxDepth를 재귀적으로 호출하여 깊이를 계산하였다. 최대 깊이 계산을 하고자 왼쪽과 오른쪽 서브트리의 깊이 중 더 큰 값을 선택하고, 현재 노드(루트)를 포함하기 위해 1을 더한다이를 통해 계산된 최대 깊이를 반환하면 결과값을 구할 수 있다.

Algorithm/릿코드 2024.06.03

99클럽 코테 스터디 4일차 226. Invert Binary Tree

이진 트리 뒤집기주어진 이진 트리의 루트 노드가 주어집니다. 트리를 좌우 반전한 트리의 루트 노드를 반환하세요. # Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclass Solution: def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]: if not root: return None # ..

Algorithm/릿코드 2024.06.03

99클럽 코테 스터디 3일차 2331. Evaluate Boolean Binary Tree

https://leetcode.com/problems/evaluate-boolean-binary-tree/description/ 주어진 불리언 이진 트리의 루트 노드가 주어집니다. 각 노드는 0 또는 1의 값을 가지며, 리프 노드가 아닌 경우 논리 연산자 OR(2) 또는 AND(3)을 나타냅니다.트리를 평가하여 그 결과를 반환하세요.예제 1:입력: root = [2,1,3,null,null,0,1] 출력: true 설명: 루트 노드가 OR(2) 연산자이고, 왼쪽 자식이 1, 오른쪽 자식이 AND(3) 연산자입니다. AND(3) 연산자의 왼쪽 자식이 0, 오른쪽 자식이 1입니다. 따라서 결과는 true입니다.예제 2:입력: root = [0] 출력: false 설명: 루트 노드가 0이므로 결과는 false..

Algorithm/릿코드 2024.06.02