전체 글 282

99클럽 코테 스터디 29일차 1337. The K Weakest Rows in a Matrix

https://leetcode.com/problems/the-k-weakest-rows-in-a-matrix/description/ 주어진 m x n 크기의 이진 행렬 mat는 1(병사)와 0(민간인)으로 이루어져 있습니다. 이 행렬에서 병사들은 민간인 앞에 배치되어 있습니다. 즉, 각 행에서 모든 1은 모든 0의 왼쪽에 나타납니다.행 i가 행 j보다 약하다는 것은 다음 두 가지 조건 중 하나에 해당합니다:행 i의 병사 수가 행 j의 병사 수보다 적다.두 행의 병사 수가 같고, i가 j보다 작다.가장 약한 행부터 가장 강한 행까지의 순서로 k개의 가장 약한 행의 인덱스를 반환하세요.       풀이 class Solution: def kWeakestRows(self, mat: List[List[in..

Algorithm/릿코드 2024.06.27

99클럽 코테 스터디 28일차 2500. Delete Greatest Value in Each Row

https://leetcode.com/problems/delete-greatest-value-in-each-row/description/ 양의 정수로 구성된 m×n 크기의 행렬 grid가 주어집니다. grid가 빈 행렬이 될 때까지 다음 작업을 수행합니다:각 행에서 가장 큰 값을 삭제합니다. 여러 개의 동일한 최댓값이 존재하는 경우, 그 중 아무거나 삭제합니다.삭제된 값들 중 가장 큰 값을 정답에 더합니다.이 작업을 반복할 때마다 열의 수가 하나씩 감소합니다.위의 작업을 모두 수행한 후의 정답을 반환하세요.      풀이 1. grid가 빈 행렬이 될 때까지 작업을 반복2. 각 while 문에서각 행의 가장 큰 값을 삭제하고, 이 값들을 저장저장된 값들 중 가장 큰 값을 answer에 추가3. 최종적으로..

Algorithm/릿코드 2024.06.27

CI/CD 워크플로우 - CI로 ESLint 검사하기

CI/CD란?CI(Continuous Integration)지속적인 통합은 개발자들이 변경 사항을 자주, 최소 하루에 한 번씩 코드 베이스에 병합하는 방법론입니다. 주요 목표는 코드를 자주 통합함으로써 통합 문제를 조기에 발견하고 해결하는 것입니다.주요 요소:자동화된 빌드: 코드를 병합할 때마다 자동으로 빌드가 실행됩니다.자동화된 테스트: 빌드 과정에서 자동으로 테스트가 실행되어 코드 변경으로 인한 버그를 조기에 발견합니다.CD(Continuous Deployment)지속적인 배포는 변경 사항을 자동으로 프로덕션 환경에 배포하는 방법론입니다. 이는 지속적인 전달(Continuous Delivery)의 확장으로, 모든 코드 변경이 자동으로 릴리스 준비가 되며, 수동 개입 없이 프로덕션에 배포됩니다.주요 요..

Git 2024.06.27

99클럽 코테 스터디 27일차 682. Baseball Game

https://leetcode.com/problems/baseball-game/description/ 당신은 야구 경기를 관리하는 프로그램을 작성하려고 합니다. 야구 경기의 점수는 다음과 같이 계산됩니다:유효한 점수: "정수", "+", "D", "C"로 이루어진 연산자입니다."+" (정수 2개를 더해 새로운 점수 생성): 이전의 2개 점수를 더한 값을 추가합니다."D" (이전 점수의 2배를 새로운 점수로 생성): 이전 점수의 2배 값을 추가합니다."C" (최근 점수 삭제): 최근에 추가된 점수를 삭제합니다.정수: 실제로 추가되는 점수입니다.이 프로그램은 여러 라운드로 진행됩니다. 모든 입력은 유효한 점수 연산을 수행하도록 보장됩니다.예시:입력: ["5","2","C","D","+"]출력: 30설명:"5..

Algorithm/릿코드 2024.06.26

99클럽 코테 스터디 26일차 1475. Final Prices With a Special Discount in a Shop

1475. Final Prices With a Special Discount in a Shop https://leetcode.com/problems/final-prices-with-a-special-discount-in-a-shop/ 다음과 같은 문제가 주어집니다: 정수 배열 prices가 주어집니다. 여기서 prices[i]는 가게에서 i번째 항목의 가격을 나타냅니다.가게에서는 항목에 대해 특별 할인 정책을 제공합니다. 만약 i번째 항목을 구매하면, j번째 항목의 가격에 해당하는 할인을 받게 됩니다. 여기서 j는 i보다 크고(j > i), 가격이 i번째 항목의 가격보다 작거나 같은(prices[j]  각 항목에 대해 최종 지불할 가격을 반환하는 정수 배열 answer를 반환하세요. answer[i]는 ..

Algorithm/릿코드 2024.06.25

99클럽 코테 스터디 25일차 933. Number of Recent Calls 최근 요청의 수

https://leetcode.com/problems/number-of-recent-calls/description/ 여러분은 최근 요청을 기록하고, 지난 3000밀리초(또는 3초) 동안 몇 개의 요청이 있었는지를 세는 클래스를 작성해야 합니다.클래스 RecentCounter는 다음과 같은 메서드를 가져야 합니다:RecentCounter(): 객체를 초기화합니다.int ping(int t): 주어진 t(밀리초) 시점에서 요청을 기록하고, 최근 3000밀리초 동안(즉, [t-3000, t] 간격 내) 발생한 모든 요청의 수를 반환합니다.주의사항:시스템은 millisecond 단위의 시간만 처리합니다.시스템 시간은 증가하지 않을 수 있습니다. 즉, t 값은 순서대로 증가하는 보장이 없으며, 같은 시간이 반복..

Algorithm/릿코드 2024.06.24

스택 (Stack) 과 큐 (Queue) 자료구조에 대해 쉽게 알아보자

스택 (Stack):특징: 후입선출(LIFO, Last In First Out) 구조. 가장 마지막에 넣은 데이터가 가장 먼저 나옵니다.사용 예: 책을 쌓아 놓는 방식. 가장 위의 책이 가장 먼저 제거됩니다.주요 연산:push: 데이터를 스택에 넣는 연산.pop: 스택의 맨 위 데이터를 꺼내는 연산.top 또는 peek: 스택의 맨 위 데이터를 제거하지 않고 조회하는 연산.큐 (Queue):특징: 선입선출(FIFO, First In First Out) 구조. 가장 먼저 넣은 데이터가 가장 먼저 나옵니다.사용 예: 줄을 서는 방식. 줄의 맨 앞에 있는 사람이 먼저 나갑니다.주요 연산:enqueue: 데이터를 큐의 맨 뒤에 넣는 연산.dequeue: 큐의 맨 앞 데이터를 꺼내는 연산.front: 큐의 맨 앞..

99클럽 코테 스터디 24일차 1700. Number of Students Unable to Eat Lunch

https://leetcode.com/problems/number-of-students-unable-to-eat-lunch/description/ 문제 설명학교 급식 시간에 학생들은 일렬로 줄을 섭니다. 각 학생은 선호하는 두 가지 종류의 샌드위치 중 하나를 고를 수 있습니다: 원형 샌드위치와 네모난 샌드위치입니다. 각각의 학생은 특정 종류의 샌드위치만 선호합니다. 또한, 급식 테이블 위에는 같은 수의 원형 샌드위치와 네모난 샌드위치가 있습니다.학생들은 다음과 같은 규칙에 따라 샌드위치를 받습니다:줄의 맨 앞에 있는 학생은 테이블 위의 맨 위에 있는 샌드위치를 확인합니다.학생이 선호하는 종류의 샌드위치라면 그 샌드위치를 가져가고 줄을 떠납니다.만약 그렇지 않으면, 학생은 줄의 맨 뒤로 이동합니다.이 과정..

Algorithm/릿코드 2024.06.23

99클럽 코테 스터디 23일차 2089. Find Target Indices After Sorting Array 배열 정렬 후 타겟 인덱스 찾기

배열 정렬 후 타겟 인덱스 찾기 (Find Target Indices After Sorting Array)문제 설명:정수 배열 nums와 정수 target이 주어집니다. nums 배열을 비내림차순(오름차순 포함)으로 정렬했을 때, target 값이 등장하는 인덱스들을 모두 찾아서 정렬된 리스트로 반환하세요.비내림차순은 배열이 순차적으로 오름차순으로 정렬되어 있지만 동일한 값이 있을 수 있음을 의미합니다   풀이 class Solution: def targetIndices(self, nums: List[int], target: int) -> List[int]: # 1. nums 배열을 정렬 nums.sort() # 2. target 값이 위치한 인덱..

Algorithm/릿코드 2024.06.21

99클럽 코테 스터디 22일차 2733. Neither Minimum nor Maximum

https://leetcode.com/problems/neither-minimum-nor-maximum/description/ 주어진 정수 배열 nums에서 최소값(minimum)과 최대값(maximum)도 아닌 하나의 요소를 반환하세요.만약 이러한 요소가 여러 개라면, 그 중 하나를 반환합니다.만약 이러한 요소가 없다면, -1을 반환합니다.   풀이 class Solution: def findNonMinOrMax(self, nums: List[int]) -> int: # 배열의 길이가 2 이하인 경우 최소값과 최대값을 제외한 요소가 없으므로 -1 반환 if len(nums)

Algorithm/릿코드 2024.06.20