본문 바로가기
728x90
반응형

오블완21

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.
9장 스택,큐(1) - 스택이란? (예제-유효한 괄호) 스택(Stack)과 연결 리스트를 활용한 ADT 구현 및 유효한 괄호 문제 풀이스택(Stack)은 LIFO(Last In, First Out) 구조를 가지는 대표적인 자료구조이다. 이는 가장 나중에 들어간 데이터가 가장 먼저 나오는 구조로, 다음 두 가지 주요 연산을 지원한다.push(item): 스택의 맨 위에 데이터를 추가하는 연산pop(): 스택의 맨 위 데이터를 제거하고 반환하는 연산 1. 연결 리스트를 활용한 스택 ADT 구현스택은 배열 또는 연결 리스트를 이용하여 구현할 수 있다. 여기서는 연결 리스트를 활용한 스택 구현 방식을 살펴보려고 한다.  연결 리스트 기반 스택 구현 코드# 연결 리스트의 노드를 나타내는 클래스class Node: def __init__(self, item, ne.. 2024. 11. 18.
빅오(Big-O) 표기법 정리 빅오(Big-O) 표기법과 알고리즘 효율성 분석빅오(Big-O)는 알고리즘의 성능을 분석하고 효율성을 평가하기 위한 수학적 표기법으로, 입력값이 커질 때 실행 시간(시간 복잡도)과 함께 공간 요구 사항(공간 복잡도)이 어떻게 증가하는지를 표현한다.이를 통해 알고리즘이 대규모 데이터에서도 얼마나 효율적으로 작동하는지, 성능의 상한선을 분석할 수 있다.  빅오란?빅오 표기법은 입력값이 무한대로 향할 때 함수의 상한을 설명하는 수학적 표기 방법이다.이 표기법은 가장 최악의 경우(worst-case)를 기준으로 알고리즘의 성능을 표현하며, 알고리즘의 성장률을 이해하는 데 유용하다.이를 통해 입력 데이터 크기(n)가 증가함에 따라 실행 시간 또는 메모리 사용량이 어떤 식으로 변할지 예측할 수 있다.  빅오 표기법.. 2024. 11. 17.
[프로그래머스-해시] 완주하지 못한 선수 문제수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한 사항마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.completion의 길이는 participant의 길이보다 1 작습니다.참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예  풀이1. 정렬과 zip을 활용한 미완주자 찾기def solution(participant.. 2024. 11. 16.
728x90
반응형