알고리즘

· 알고리즘
📌 LeetCode [2303]: Calculate Amount Paid in Taxes🔗 문제 링크문제 설명 📄소득 income과 각 세율 구간을 나타내는 brackets가 주어졌습니다. 각 구간은 [upperLimit, percent]로 나타나며, 소득이 구간의 상한을 초과하면 해당 구간의 세율이 초과된 부분에 적용됩니다.모든 소득에 대해 계산된 총 세금을 반환하세요.문제 해결 접근 📋세금 구간별로 반복하면서 해당 구간에 대해 적용할 수 있는 소득을 계산합니다.이전 구간의 상한값과 현재 구간의 상한값의 차이를 통해 해당 구간에서 과세될 금액을 계산합니다.계산된 금액에 해당 구간의 세율을 곱하여 세금을 누적합니다.소득이 0이 되면 반복을 종료하고 결과를 반환합니다.Solution 💻class ..
· 알고리즘
📌 LeetCode [733]: Flood Fill🔗 문제 링크문제 설명 📄2D 배열 image가 주어지며, 배열의 픽셀 중 (sr, sc)의 위치에서 시작하여 해당 픽셀과 동일한 색상을 가진 모든 연결된 영역을 새 색상 color로 변경해야 합니다.문제 접근 방식 📋시작 픽셀 확인:주어진 (sr, sc) 픽셀의 색상(before)을 저장하고, 이를 color로 변경해야 합니다.만약 시작 픽셀의 색상이 이미 color라면 작업이 필요 없으므로 그대로 반환합니다.BFS 방식:큐(deque)를 사용하여 시작 픽셀부터 상하좌우로 확장하며 동일한 색상을 가진 모든 픽셀을 탐색합니다.방문한 픽셀은 즉시 color로 변경하여 중복 탐색을 방지합니다.Solution 💻from collections impor..
· 알고리즘
📌 LeetCode [1791]: Find Center of Star Graph🔗 문제 링크문제 설명 📄Star Graph에서 중심 노드를 찾는 문제입니다.Star Graph는 하나의 중심 노드가 모든 다른 노드와 직접 연결된 형태의 그래프입니다.edges가 주어질 때, Star Graph의 중심 노드를 반환하세요.Solution 💻class Solution: def findCenter(self, edges: List[List[int]]) -> int: pattern = {} for one, two in edges: if one in pattern: return one if two in pattern:..
· 알고리즘
📌 LeetCode [168]: Excel Sheet Column Title🔗 문제 링크문제 설명 📄Excel 시트의 열 번호가 주어졌을 때, 이를 열 제목(A, B, ..., Z, AA, AB, ...)으로 변환하는 문제입니다.열 제목은 대문자 알파벳으로 구성되며, 열 번호는 1부터 시작합니다.Solution 💻class Solution: def convertToTitle(self, columnNumber: int) -> str: alpha = [chr(i) for i in range(65, 91)] answer = [] while columnNumber > 0: columnNumber -= 1 value = co..
· 알고리즘
📌 LeetCode [228]: Summary Ranges🔗 문제 링크문제 설명 📄정렬된 정수 배열 nums가 주어질 때, 연속된 숫자 범위를 문자열 형식으로 반환합니다.단일 숫자는 문자열로 나타냅니다.연속된 숫자는 "start->end" 형식으로 나타냅니다.문제 접근 방식 📋초기화:시작 인덱스 left를 초기화합니다.반복문 처리:배열의 끝까지 반복하면서 연속성이 끊어지는 지점을 탐지합니다.연속성이 끊어지면 해당 범위를 문자열로 저장합니다.반복문 내에서 마지막 요소까지 처리하도록 조건을 설정합니다.결과 생성:연속 범위를 정리하여 결과 리스트에 추가합니다.Solution 💻class Solution: def summaryRanges(self, nums: List[int]) -> List[st..
· 알고리즘
📌 LeetCode [703]: Kth Largest Element in a Stream🔗 문제 링크문제 설명 📄k번째로 큰 요소를 효율적으로 추적할 수 있는 클래스 KthLargest를 구현해야 합니다.KthLargest는 두 가지 주요 작업을 처리합니다:초기화: 주어진 nums 리스트와 k값을 기반으로 초기화.값 추가: 새로운 값을 추가하고 현재 k번째로 큰 값을 반환.Solution 💻import heapqclass KthLargest: def __init__(self, k: int, nums: List[int]): self.k = k self.q = [] for num in nums: heapq.heappush(self.q, n..
· 알고리즘
📌 LeetCode [766]: Toeplitz Matrix🔗 문제 링크문제 설명 📄주어진 2D 배열 matrix가 Toeplitz 행렬인지 확인하세요.Toeplitz 행렬이란, 각 대각선에 있는 모든 요소가 동일한 값을 가지는 행렬을 말합니다.Solution 💻class Solution: def isToeplitzMatrix(self, matrix: List[List[int]]) -> bool: for i in range(1, len(matrix)): for j in range(1, len(matrix[0])): if matrix[i][j] != matrix[i - 1][j - 1]: return ..
· 알고리즘
📌 LeetCode [476]: Number Complement🔗 문제 링크문제 설명 📄양의 정수 num이 주어졌을 때, 해당 숫자의 2진수 표현에서 모든 비트를 반전시켜서 반환하는 문제입니다.반전된 숫자는 동일한 비트 길이를 가져야 합니다.Solution 💻class Solution: def findComplement(self, num: int) -> int: answer = [] while num != 0: answer.append(num % 2) num //= 2 for i in range(len(answer)): if answer[i] == 0: answer[i]..
알고리즘 노트
'알고리즘' 카테고리의 글 목록 (2 Page)