파이썬 5

[Python/백준] 10989 수정렬3 - 메모리초과.. dict를 활용.

문제 : www.acmicpc.net/problem/10989 아무 생각없이 리스트를 활용하여 정렬하는 방식으로 풀면 아래와 같다. import sys n = int(sys.stdin.readline()) num_list = [] for _ in range(n): num_list.append(int(sys.stdin.readline())) sorted_list = sorted(num_list) for i in sorted_list: print(i) 이러면 메모리초과 오류가 발생한다. 리스트가 길어지면, append에서 메모리를 많이 사용하기 때문. 다른 블로그 글에서는 계수정렬을 하거나, 리스트를 미리 만들어놓고 값을 추가하는 방식으로 문제를 풀었다. 그런데 이런 방식은 별로 pythonic 하지 않다고..

알고리즘 2024.01.24

7. 파이썬의 클래스, 모듈, 패키지

Class 1. 클래스 생성 및 기초 같은 객체를 여러개 만들어야할 때, 클래스를 만들어두면 인스턴스를 쉽게 생성할 수 있다. class Bank: def __init__(self, name): self.name = name def get_name(self): return self.name def call_name(self, num): print("좋아 은행의 %s고객님은 %d번째 손님입니다" % (self.name, num)) x = Bank("Jack") print(x.get_name) x.call_name(3) 1)메소드는 def 함수명(변수): 내용 2) self라는 인수는 입력하지 않아도 알아서 인스턴스 명으로 호출되어 들어간다 3) __init__은 생성자로 클래스로 인스턴스를 만들때 반드시 ..

Python/기초 2019.09.22

6. 파이썬의 함수, 입출력

함수 1. 함수의 구조 1) 입력인수가 있고, 리턴값도 있음 def 함수명(입력 인수) : 내용 return 2) 입력 인수가 있고, 리턴값은 없음 def 함수명(a,b): 내용 3) 입력인수가 없지만, 리턴값만 있음 def 함수명(): 내용 return 4) 입력 인수가 없고, 리턴값도 없음 def 함수명(): 내용 2. 입력 값이 여러개일 경우 1) *args를 사용 def sum(*args): sum=0 for i in args: sum += i return sum 2) 일반 인수랑 *args를 동시에 사용할 수도 있다. def calc(what, *args): result = 0 if what == 'sum': if i in args: result += i elif what == 'sub': if..

Python/기초 2019.09.22

3. 파이썬의 자료형(리스트, 튜플)

1. 리스트 1) 리스트 생성 리스트명 = [내용1, 내용2, 내용3] 내용은 숫자, 문자형 상관없이 섞여도됨 2) 리스트 인덱싱 a=[1,2,3] a[0]=1 a[0]+a[2]=4 a[-1]=3 #이중 리스트 a=[1,2,3,['a','b','c']] a[3] -> ['a','b','c'] a[3][0] -> 'a' 3) 리스트 슬라이싱 #문자열 슬라이싱과 동일함 a=[1,2,3,4,5] a[0:2] ->[1,2] a[2:] -> [3,4,5] 4) 리스트 수정 #수정 a=[1,2,3] a[1]=4 #a=[1,4,3] a[1:2]=[3,3,3] #a=[1,3,3,3,3] a=[1,2,3] a[1]=[3,3,3] #a=[1,[3,3,3],3] #삭제 a=[1,2,3] a[1:2]=[]#[1,3] a=[1..

Python/기초 2019.09.19