Language Study
-
[기능] 파이썬 stdin 입력Language Study/Python 2021. 4. 16. 06:24
www.acmicpc.net/problem/15552 15552번: 빠른 A+B 첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다. www.acmicpc.net 일반적으로 입력을 받을 때에는 input()을 사용한다. 하지만 백준 15552번 빠른 A+B와 같은 문제를 해결할 때에는 input()으로 입력받는 경우에는 시간 초과가 발생한다. 이 때 impor sys를 하여 stdin으로 입력을 받는다면 시간초과를 발생시키지 않을 수 있다. sys.stdin.readline() 1. 정수 입력 받기 import sys number = int(sys.stdin.readline()) 하나의 ..
-
[기능] 파이썬 순열, 조합 (Permutations, Combinations)Language Study/Python 2021. 4. 6. 04:26
순열 (nPr) 순열이란 서로 다른 n개중에 r개를 선택하는 경우의 수를 의미합니다. (순서 상관 있음) 조합 (nCr) 조합이란 서로 다른 n개중에 r개를 선택하는 경우의 수를 의미합니다. (순서 상관 없음) 프로그램을 짜다보면 순열과 조합을 사용하는 상황이 종종 발생한다. 그런 순간에 직접 재귀나 반복문을 이용하여 구현할 수 있지만 파이썬은 모듈을 이용하여 쉽게 사용할 수 있다. 바로 itertools의 permutations 와 combinations이다. import itertools chars = ['A', 'B', 'C'] perm = itertools.permutations(chars, 2) # 순열 comb = itertools.combinations(chars, 2) # 조합 print(..
-
[기능] 파이썬 리스트 복사 (python copy)Language Study/Python 2021. 4. 1. 22:27
Copy 파이썬에서 일반적으로 복사할 때 아래와 같은 형식으로 진행된다. list_A = ["ABC","DEF"] list_B = list_A 하지만 이렇게 복사를 하는 경우 단순한 값에 대해서는 문제가 없지만, 리스트를 복사할 때에는 C 언어에서 포인터만 지정한 것과 비슷한 경우된다. 실제로 list는 1개만 존재하지만 2가지 이름으로 가리키는 것이다. list_A = ["ABC","DEF"] list_B = list_A list_B.append("GHI") print(list_A) #결과 ["ABC","DEF","GHI"] 위의 경우와 같이 B를 수정했지만 A에도 반영되고 있다. 그래서 단순히 = 로 복사하는 경우에는 문제가 생길 수 있다. Shallow Copy 리스트와 같은 변형 객체에서는 다른 ..
-
[자료구조] collections module - dequeLanguage Study/Python 2021. 3. 31. 16:39
1. deque 덱은 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조의 한 형태이다. 두 개의 포인터를 사용하여, 양쪽에서 삭제와 삽입을 발생 시킬 수 있다. 큐와 스택을 합친 형태로 생각할 수 있다. 파이썬에서는 collections 모듈을 이용하여 deque를 사용할 수 있다. import collections dq = collections.deque() 로 생성 from collections import deque dq = deque() 로 생성 list와 동일하게 append(), pop()을 사용할 수 있으며 추가적으로 appendleft(), popleft()도 사용할 수 있다. list.pop(0)이나 list.insert(0, number) 을 이용하면 기본 기능을 이용해서도 구현할 수 ..
-
[자료구조] heapq moduleLanguage Study/Python 2021. 2. 2. 18:05
힙이란? 완전 이진 트리의 일종으로 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 자료구조이다. A가 B의 부모노드(parent node) 이면, A의 키(key)값과 B의 키값 사이에는 대소관계가 성립한다. 라는 성질은 만족하며 부모노드의 키값이 자식노드의 키값보다 항상 큰 힙을 '최대 힙', 부모노드의 키값이 자식노드의 키값보다 항상 작은 힙을 '최소 힙'이라고 부른다. 키값의 대소관계는 오로지 부모노드와 자식노드 간에만 성립하며, 특히 형제 사이에는 대소관계가 정해지지 않는다. 모듈 설정 import heapq heapq의 경우 내장되어 있는 모듈이기 때문에 바로 import하여 사용할 수 있다. 힙 PUSH list를 heap처럼 사용할 수 있게 하는 것으로 빈 리스트에 인자를 넣는..
-
[환경 설정] Pycharm에서 아나콘다에 모듈 설치하는 법Language Study/Python 2020. 5. 6. 20:59
Python을 사용하다보면 anaconda에 설치되어 있지 않은 모듈을 사용하는 경우가 있다. 이 모듈을 그냥 설치하게되면 파이썬 환경 안에 설치되기 때문에 다른 프로젝트 등에서 사용하려면 추가적인 설정이 필요할 수 있다. 그럼 어떤 방법으로 하는 것이 가장 효율적일까? 바로 아나콘다에 모듈을 설치해서 항상 아나콘다를 Project Interpreter로 설정하는 방법이다. 먼저 파이참에서 File -> Setting으로 들어간다 이런 창이 나오면 Project Interpreter 항목에 들어간 후 Project Interpreter를 설치된 Anaconda로 설정해야하지만 처음하는 경우에는 저기에 anaconda가 없을 가능성이 크다. 만약 Interpreter 항목에 anaconda가 없는 경우에는..