알고리즘90 백준 알고리즘: 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. baekjoon: 10989번, 수 정렬하기3(Python) 문제 정보 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 핵심 해당 문제는 시간, 메모리 제한이 걸려있는 문제이며 일반적인 입출력 함수를 사용해서는 쉽게 풀 수 없는 문제이다 따라서 sys 라이브러리를 사용하여 입출력을 진행하거나, 아니면 open(0) 처럼 표준 입출력 함수를 사용하여 문제를 풀어야 할 것이다 이번 고찰에서는 이와 같은 표준 입출력 함수에 대하여 간단하게 설명하도록 하겠다 풀이 a = [None] * 10001 b = map(int, open(0)) next(b) for i in b: if a[i] is Non.. 알고리즘/Python 2023. 5. 17. 이전 1 ··· 13 14 15 16 17 18 다음