알고리즘/Python36 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. Python: sys.stdin.read() sys.stdin.readline() 차이점 정리 sys.stdin.read() sys.stdin.readline() 차이점 정리 sys.stdin.read()와 sys.stdin.readline()은 모두 sys.stdin에서 입력을 읽는 메서드입니다. 그러나 그들 사이에 중요한 차이점이 있습니다. sys.stdin.read() 이 메서드는 sys.stdin에서 입력을 읽고 문자열로 반환합니다. 입력 스트림의 끝에 도달할 때까지 모든 내용을 한 번에 읽습니다. 일반적으로 파일의 내용 전체를 한 번에 읽을 때 사용합니다. sys.stdin.readline() 이 메서드는 sys.stdin에서 입력을 한 줄씩 읽고 문자열로 반환합니다. 개행 문자(줄 바꿈)까지 읽은 후 문자열을 반환합니다. 따라서 각 호출은 한 줄을 읽습니다. 주로 대화형 입력이나 줄 단.. 알고리즘/Python 2023. 5. 16. 백준 알고리즘: 2750번 수 정렬하기 (Python) 문제 정보 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 핵심 사실 이 문제의 핵심이 있을까? 정렬 알고리즘이 최악의 경우에도 O(N^2) 이고, 문제에서 주어진 N의 최대 개수는 1,000에 불과하므로 최악의 경우 1,000,000 (백만 번)만 반복하면 되니까 아마 최악의 경우에서도 성공이 가능하지 않을까 싶다 하지만, Java도 그랬지만 Python도 .sort() 함수를 사용하면 평균 O(NlogN)의 시간복잡도로 정렬을 수행할 수 있기 때문에 정렬 함수를 따로 구현하거나 하지 않아도 되는 쉬운 문제였던 것.. 알고리즘/Python 2023. 5. 16. Python: 파이썬 문법 요약 파이썬 문법 요약 목차 기본 문법 변수 및 자료형: 변수 할당, 숫자형, 문자열, 리스트, 튜플, 딕셔너리, 집합 조건문과 반복문: if문, for문, while문 연산자: 산술 연산자, 비교 연산자, 논리 연산자 자료구조와 함수 리스트(List): 선언, 인덱싱과 슬라이싱, 리스트 관련 함수 문자열(String): 인덱싱과 슬라이싱, 문자열 관련 함수 튜플(Tuple): 선언, 인덱싱과 슬라이싱 딕셔너리(Dictionary): 선언, 추가 및 삭제, 키와 값 접근 집합(Set): 선언, 추가 및 삭제, 집합 연산 함수(Function): 함수 정의, 매개변수와 반환값, 람다 함수 정렬과 탐색 정렬(Sorting): 파이썬 내장 정렬 함수(sorted, sort), 정렬 라이브러리 (heapq, bise.. 알고리즘/Python 2023. 5. 16. 백준 알고리즘: 1920번 수 찾기 (Python) 문제 정보 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 핵심 단순 탐색 문제이나, 두개의 배열의 길이가 100,000으로 제한되어 있음 만일 순차 탐색으로 이 문제를 풀 경우 최대 100,000^2 번의 탐색이 필요할 수 있으므로 비효율적임 따라서 이진 탐색(Binary Search) 알고리즘을 활용하여 문제를 풀이함 풀이 # 수 찾기 N = int(input()) A = list(map(int, input().split())) A.sort() M = int.. 알고리즘/Python 2023. 5. 15. 이전 1 ··· 4 5 6 7 8 다음