반응형

Python 127

코딩 테스트 대비! 파이썬으로 "원형 데크(Circular Deque) 구현" 문제 풀이

파이썬으로 "원형 데크(Circular Deque) 구현" 문제 풀이 문제 설명 원형 데크(Circular Deque)를 디자인하는 클래스를 구현하세요. 원형 데크는 앞뒤로 양방향 삽입과 삭제가 가능한 자료구조입니다. 원형 데크는 다음 메서드를 제공해야 합니다: - MyCircularDeque(k): 크기가 k인 원형 데크를 생성합니다. - insertFront(value): 원형 데크의 앞에 값을 삽입합니다. 데크가 가득 차 있으면 false를 반환합니다. - insertLast(value): 원형 데크의 뒤에 값을 삽입합니다. 데크가 가득 차 있으면 false를 반환합니다. - deleteFront(): 원형 데크의 앞 값을 삭제하고, 삭제한 값을 반환합니다. 데크가 비어있으면 -1을 반환합니다. -..

코딩 테스트 대비! 파이썬으로 "이진 트리 반전" 문제 풀이

파이썬으로 "이진 트리 반전" 문제 풀이 문제 설명 이진 트리의 루트 노드가 주어졌을 때, 해당 트리를 반전(좌우 대칭)시키는 프로그램을 작성하세요. 예시 입력: root = [4,2,7,1,3,6,9] 출력: [4,7,2,9,6,3,1] 솔루션 코드 class TreeNode: def __init__(self, val=0, left=None, right=None): self.val = val self.left = left self.right = right def invert_tree(root): if not root: return None # 좌우 자식 노드 반전 root.left, root.right = root.right, root.left # 재귀로 반전 진행 root.left = invert_t..

코딩 테스트 대비! 파이썬으로 "유효한 괄호" 문제 풀이

파이썬으로 "유효한 괄호" 문제 풀이 문제 설명 괄호로 구성된 문자열 s가 주어졌을 때, 괄호의 열림과 닫힘이 올바르게 되어있는지 확인하는 프로그램을 작성하세요. 제약 조건 - 1 true - s = "(]" -> false - s = "([)]" -> false 솔루션 코드 def is_valid(s): stack = [] mapping = {")":"(", "}":"{", "]":"["} for char in s: if char in mapping.values(): # 여는 괄호면 스택에 push stack.append(char) else: # 닫는 괄호면 if not stack: # 스택이 비어있다면 바로 false return False elif stack.pop() != mapping[char]..

코딩 테스트 대비! 파이썬으로 "세 수의 합" 문제 풀이

파이썬으로 "세 수의 합" 문제 풀이 문제 설명 정수 배열 nums가 주어졌을 때, 합이 0이 되는 세 정수의 삼중쌍을 모두 찾아 리스트 형태로 반환하는 프로그램을 작성하세요. 제약 조건 - 3 ≤ nums.length ≤ 3000 - -105 ≤ nums[i] ≤ 105 예시 입출력 - nums = [-1,0,1,2,-1,-4] → [[-1,-1,2],[-1,0,1]] - nums = [] → [] - nums = [0] → [] 솔루션 코드 def three_sum(nums): res = [] nums.sort() # 정렬 for i in range(len(nums)-2): # 중복 건너뛰기 if i > 0 and nums[i] == nums[i-1]: continue left, right = i+1..

코딩 테스트 대비! 파이썬으로 "두 정렬 리스트의 병합" 문제 풀이

파이썬으로 "두 정렬 리스트의 병합" 문제 풀이 문제 설명 정렬된 연결 리스트 l1과 l2가 주어졌을 때, 이 두 리스트를 병합하여 정렬된 새 연결 리스트를 반환하는 프로그램을 작성하세요. 제약 조건 - 두 리스트의 노드 수는 0 이상 50 이하입니다. - -1,000 ≤ Node.val ≤ 1,000 예시 입출력 - l1 = [1,2,4], l2 = [1,3,4] → [1,1,2,3,4,4] - l1 = [], l2 = [] → [] - l1 = [], l2 = [0] → [0] 솔루션 코드 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next def merge_sorted_lists(l1, l2): d..

반응형