단순하지만 강력한 문제 해결 방법 현재 상황에서 지금 당장 좋은 것만 고르는 방법 암기가 필요한 알고리즘 '가장 큰 순서대로', '가장 작은 순서대로'와 같은 기준을 제시해준다 정렬 알고리즘과 짝을 이뤄 출제 예제1) 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원 짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수를 구하라. 단 거슬러 줘야 할 돈 N은 항상 10의 배수이다. 문제 해설 가장 큰 화폐 단위부터 돈을 거슬러 주는 것 def get_count(n): count = 0 coin_types = [500, 100, 50, 10] for coin in coin_types: ..
파이썬 관련/파이썬
파이썬에서는 프로그램 수행 시간과 메모리 사용량을 측정할 수 있다. import time start_time = time.time() # 프로그램 소스코드 end_time = time.time() print('time :', end_time - start_time) # 수행 시간 출력 어떤 알고리즘을 설계한 뒤에 시간 복잡도를 경험적으로 증명하고 싶을 때는 위와 같은 형태의 코드를 자주 이용한다. 예시) from random import randint import time # 배열에 10,000개의 정수를 삽입 array = [] for _ in range(10000): array.append(randint(1, 100)) # 1부터 100 사이의 랜덤한 정수 # 선택 정렬 프로그램 성능 측정 start..
pickle : 객체 파일 읽기, 쓰기 import pickle # (쓰기) f = open("test.obj", 'wb') obj = {1: 'python', 2:'study', 3:'basic'} pickle.dump(obj, f) f.close() # (읽기) f = open('test.obj', 'rb') data = pickle.load(f) print(data, type(data)) # {1: 'python', 2: 'study', 3: 'basic'} f.close() os : 환경 변수, 디렉터리(파일) 처리 관련, 운영체제 작업 관련 # mkdir, rmdir(비어 있으면 삭제), rename import os print(os.environ) print(os.environ["USERNAM..
abs() : 절대값 print(abs(-3)) # 3 all() : Iterable 요소 검사(참, 거짓)(and) print(all([1,2,''])) # False print(all([1,2,3,0])) # False any() : Iterable 요소 검사(or) print(any([1,2,''])) # True print(any([1,2,3,0])) # True chr() : 아스키 -> 문자 ord() : 문자 -> 아스키 print(chr(67)) # C print(ord('C')) # 67 enumberate() : 인덱스 + Iterable 객체 생성 for i, name in enumerate(['abc','bcd','efg']): print(i + 1, name) # 1 abc # 2..