본문 바로가기
728x90
반응형

코딩테스트8

8장 연결리스트 (1) - 연결리스트란? (예제 - 회문 판별) 연결 리스트(Linked List)연결 리스트(Linked List)는 배열과 함께 대표적인 선형 자료구조로, 다양한 추상 자료형(ADT) 구현의 기반이 됩니다. 이 구조는 동적으로 새로운 노드를 삽입하거나 삭제하기가 용이하며, 물리 메모리를 연속적으로 사용하지 않아도 되므로 메모리 관리에도 유리합니다. 연결 리스트의 특징동적 메모리 관리: 물리적으로 연속적이지 않아도 되므로 메모리 활용도가 높습니다.삽입/삭제의 효율성: 시작 또는 끝에 데이터를 삽입하거나 삭제하는 작업은 O(1)에 가능합니다.탐색의 비효율성: 특정 인덱스에 접근하려면 순차적으로 읽어야 하므로 탐색 시간은 O(n)입니다.  문제. 연결 리스트로 Palindrome(회문) 검사하기- 입력: 1->2 / 출력: False- 입력: 1->2-.. 2024. 11. 22.
9장 스택,큐(3) - 스택이란? (예제-일일 온도) 매일의 화씨 온도 리스트 T를 입력 받아서, 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지를 출력하라.입력: T = [73, 74, 75, 71, 69, 72, 76, 73]출력: [1,1,4,2,1,1,0,0] def dailyTemperatures(T: list[int]) -> list[int]: answer = [0] * len(T) # 결과를 저장할 리스트, 초기값은 0 stack = [] # 인덱스를 저장하는 스택 for i, cur in enumerate(T): # 인덱스(i)와 현재 온도(cur)를 함께 순회 # 스택이 비어 있지 않고, 현재 온도가 스택의 마지막 인덱스에 해당하는 온도보다 높다면 while stack and cur.. 2024. 11. 20.
9장 스택,큐(2) - 스택이란? (예제-중복문자제거) 중복된 문자를 제외하고 사전식 순서로 나열하라입력: "bcabc" / 출력: "abc"입력: "cbacdcbc" / 출력: "acdb"  풀이. 스택을 이용한 문자 제거import collectionsdef removeDuplicateLetters(s: str) -> str: counter, seen, stack = collections.Counter(s), set(), [] for char in s: counter[char] -= 1 # 현재 문자의 개수를 하나 줄임 if char in seen: # 이미 스택에 추가된 문자라면 건너뜀 continue # 스택에서 문자를 제거할 조건: .. 2024. 11. 19.
[프로그래머스-해시] 완주하지 못한 선수 문제수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예  풀이1. 정렬과 zip을 활용한 미완주자 찾기def solution(participant.. 2024. 11. 16.
728x90
반응형