Algorithm/릿코드 28

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

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

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

99클럽 코테 스터디 21일차 2325. Decode the Message

https://leetcode.com/problems/decode-the-message/ 주어진 문자열 key와 message는 각각 암호화 키와 비밀 메시지를 나타냅니다. message를 해독하기 위한 단계는 다음과 같습니다:key에서 처음 등장하는 모든 26개의 소문자 영어 알파벳을 사용하여 대체 테이블의 순서를 정합니다. 이는 key의 각 문자가 알파벳의 어떤 문자로 변환될지 결정합니다.대체 테이블을 정렬된 영어 알파벳과 맞춥니다. 즉, key의 첫 번째 고유 문자는 'a'에, 두 번째 고유 문자는 'b'에 매핑됩니다. 이렇게 해서 'z'까지 매핑합니다.message의 각 문자는 이 대체 테이블을 사용하여 변환됩니다.공백 문자 ' '는 그대로 유지됩니다.예를 들어, 주어진 key = "happy b..

Algorithm/릿코드 2024.06.20