알고리즘/Python36 백준 알고리즘: 10866번 덱 (Python) 문제 정보 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 핵심 덱(Deque)의 구조와 각 명령들에 대해 알면 쉽게 풀이할 수 있는 것 같다 덱(Deque)은 "Double Ended Queue"의 약자로, 양쪽 끝에서 삽입과 삭제가 모두 가능한 선형 자료구조이다. 덱은 큐(Queue)와 스택(Stack)의 기능을 모두 갖고 있어, 큐와 스택의 동작을 유연하게 수행할 수 있다. 덱의 구조는 일렬로 나열된 항목들로 이루어진 컬렉션입니다. 각 항목은 노드(node)라고도 부르며, 이 노드들은 양방.. 알고리즘/Python 2023. 5. 25. 백준 알고리즘: 10845번 큐 (Python) 문제 정보 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 핵심 기존에 풀던 풀이가 있었는데, 해당 방식을 사용했더니 런타임 에러(ValueError)가 떠서 몇번이고 수정하다가 그냥 한 문장씩 받는 방식으로 바꾸어서 풀이하였다. 이전 풀이(스택) 에서 사용하지 않았던 3항 연산자도 사용하여 코드의 가독성 및 간결성을 높힐 수 있었다 풀이 import sys N = int(sys.stdin.readline()) def sol(): queue = [] for i in range(N): com = .. 알고리즘/Python 2023. 5. 23. 백준 알고리즘: 10828번 스택 (Python) 문제 정보 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 핵심 스택은 기본적인 자료구조형이고 알고있었던 내용이라 구현하는 것은 쉬웠던 것 같다 구현하는 것에 대한 방식의 차이는 있을 수 있지만 대부분 풀이는 비슷할 것 같다 풀이 import sys class solv: def __init__(self): self.stack = [] def push(self, item): self.stack.append(item) def top(self): if self.empty() == 1: return .. 알고리즘/Python 2023. 5. 23. Python: Set 자료형에 대한 정리 Set 자료형에 대한 특징 및 정리 백준 문제를 풀다가(바로 전 게시물) Set 자료형을 활용하면 훨씬 더 효율적으로 문제를 풀이할 수 있는 것을 보고 Set 자료형에 대한 특징과 정리를 간단히 해보려고 한다. 특징 고유한 요소 set은 고유한(unique) 요소들로 구성됩니다. 중복된 값을 허용하지 않으므로, 집합 연산이나 중복된 값을 제거하는 등의 작업에 유용합니다. 집합 연산 set은 집합 연산을 지원합니다. 교집합, 합집합, 차집합 등의 연산을 쉽게 수행할 수 있습니다. 이는 데이터의 유일성 검사, 데이터 간의 관계 파악 등에 유용합니다. 빠른 멤버십 테스트 set은 내부적으로 해시 테이블을 사용하여 요소를 저장하므로, 특정 요소의 존재 여부를 빠르게 확인할 수 있습니다. 이는 많은 요소 중에서 .. 알고리즘/Python 2023. 5. 17. 백준 알고리즘: 10815번 숫자 카드 (Python) 문제 정보 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 핵심 이제 가장먼저, 입력 허용 범위와 개수부터 파악을 하고 들어가는 습관을 가지게 되었다! N의 개수가 많지 않으므로 Sorting Algorithm에 대해서 큰 생각을 하지 않아도 되고(최악의 경우가 아니라면) 값의 숫자의 범위가 넓으므로 배열을 통한 비교도 효율적이지 않을 것이라 생각하였다 따라서 그냥 먼저 정석적으로 이분 탐색을 사용하여 풀이해 보았다 풀이 import sys from bisect import bis.. 알고리즘/Python 2023. 5. 17. 이전 1 ··· 3 4 5 6 7 8 다음