2024/06 30

TIL99클럽 코테 스터디 30일차 2864. Maximum Odd Binary Number

https://leetcode.com/problems/maximum-odd-binary-number/description/ 주어진 이진 문자열 s가 있습니다. 이 문자열에는 최소 하나의 '1'이 포함되어 있습니다. s의 길이를 n이라고 할 때, 길이가 n인 이진 문자열 중에서 홀수인 가장 큰 값을 찾으려고 합니다.이진 문자열이 홀수이려면 마지막 자리가 '1'이어야 합니다. 이진 문자열의 값을 가능한 가장 큰 값으로 만들기 위해서는 '1'의 개수는 변하지 않게 하되, 최대한 앞쪽에 배치해야 합니다.Maximum Odd Binary Number를 반환하세요.입력 형식s는 길이 n인 이진 문자열입니다.s는 최소 하나의 '1'을 포함하고 있습니다.출력 형식s의 문자들을 재배치하여 만들 수 있는 최대값이면서 홀수..

Algorithm/릿코드 2024.06.29

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