목록Python (5)
잘 정리해보자
백준에서 "자주 틀리는 요인"으로 정리해 둔 부분에서 python만 추렸습니다. Python과 Pypy 파이썬 2를 쓰면 안 됩니다. 코드가 틀린 건 아니지만, 언어가 틀렸습니다. BOJ는 numpy 등 외장모듈을 지원하지 않습니다. (사실 모든 언어가 그렇습니다.) 풀이가 분명히 맞고 시간복잡도도 충분히 작은데 시간 초과가 난다면 언어를 Pypy로 설정하고 제출하면 됩니다. 파이썬은 원래 편리성과 속도를 맞바꾼 언어이기 때문에, 맞아야 될 풀이가 시간 초과더라도 이상할 게 전혀 없습니다. 두 수를 입력받고 나서 비교할 때는 반드시 int로 변환을 합시다. 문자열의 비교는 사전 순 비교이기 때문에, 3은 10보다 작지만 "3"은 "10"보다 큽니다. is 키워드는 두 대상의 값이 같은지가 아니라 완전히 ..
1. if __name__ == '__main__' : 로 사용되는 경우 현재 실행되는 부분을 구분할 때 사용 nametest.py def test1() : if __name__ == '__main__' : print('__name__ = __main__') return 'test function' def test2() : print(__name__) return '__name__ test!!' //호출 test1() test2() > nametest.py 안에서 test1호출 한 경우 : 실행결과 : __name__ = __main__ Out[22]: 'test function' > nametest.py 안에서 test2호출 한 경우 : 실행결과 : __main__ Out[23]: '__name__ t..
*파라미터명 : *가 붙은 파라미터는 파라미터값을 여러개 받을 수 있으며, list 처럼 사용할 수 있다. (형식은 tuple) **파라미터명 : **가 붙은 파라미터는 파라미터값을 딕셔너리 형태로 여러개 받을 수 있다. ex) def vartest1(*values) : print(values) def vartest2(**values) : print(values) vartest1(1,2) vartest2(x=1,y=2) 실행결과 : (1, 2) -> * 붙은값 {'x': 1, 'y': 2} -> ** 붙은값
deque : list와 같은 비슷하며, 앞 뒤로 데이터를 처리 할 수 있다. append() : deque의 오른쪽 데이터 삽입 appendleft() : deque의 왼쪽 데이터 삽입 extend() : deque 의 오른쪽 데이터 확장 삽입 extendleft() : deque의 왼쪽 데이터 확장 삽입 pop() : deque의 맨 오른쪽 데이터 삭제 popleft() : deque의 맨 왼쪽 데이터 삭제 rotate(n) : n이 음수면 왼쪽, 양수이면 오른쪽 extend() 예제 : import collections deq = collections.deque([a,b,c,d,e]) deq.extend('ef') print(deq) > deque(['a', 'b', 'c', 'd', 'e', 'e..
Python에서 입력값을 받을 때 input() 함수를 사용하지만 시간단축을 위해 sys.stdin.readline을 사용한다. 입출력 속도 비교 : sys.stdin.readline > raw_input() > input() 변형 : num = int(input()) -> num = int(sys.stdin.readline()) 사용 시, import sys 선언 필요 여러 라인 입력 받을 경우 아래와 같이 사용하는 게 빠르다고 함. n = input() a = [sys.stdin.readline() for i in range(n)] sys.stdin.readline : 한 라인 입력 받을 떄 sys.stdin : 여러 줄 입력 받을 때 for line in sys.stdin: print(line) *..