Algorithm 85

Python 입출력 정리

input()한 줄의 문자열을 입력받을 때str = input() # 문자열num = int(input()) # 정수형a, b = input().split() # 띄어쓰기로 구분되는 값map()여러개의 값을 일차원 배열로 입력받을 때리스트의 모든 원소에 각각 특정한 함수를 적용할 때javascript map이랑 비슷하지만 python의 map은 map 객체라는 Iterable한 객체를 반환하고, 이를 list, tuple로 변환하여 사용해야 한다그래서 밑에 예제에서도 list로 변환해주고 있다arr = list(map(int, input().split())) # 띄어쓰기로 구분하는 정수형sys.stdin파일 입출력 시sys.stdin = open("input.txt", "r")stdin : standar..

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

스택 (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