0. 들어가기전에 (1) Scanner과 BufferedReader 차이 이전 관련포스트 --> 클릭 - 각 언어별 입력방식에 따른 시간 차이 존재 - ex) java에서는 java.util.Scanner -> 6.068초 / java.io.BufferedReader -> 0.934초 - 시간을 생각한다면 java.io.BufferedReader을 사용하는것이 이득 (2) BufferedWriter과 System.out.println() - 잘 구현된 알고리즘은 속도, 메모리 측면에서 최적화 되어야함 - System.out.prinln()의 경우 시스템 리소스를 필요이상으로 사용 1. Array와 List 차이점 - 자세하게 이전 포스트에 정리 --> 클릭 - 간단하게 정리 - Array -> 배열, 처..
1. set - 반복가능하고, 가변적이다 - 중복 요소가 없고 정렬되지 않은 컬렉션 데이터 타입이다. - 인덱스 연산은 할 수 없다 - 멤버십 테스트 및 중복 항목 제거에 이용된다. - w집합과 관련된 자료형 1 2 3 4 5 6 7 8 9 10 #집합 자료형 s = {3,5,7} print(s) print(type(s)) """ {3, 5, 7} """ cs 1.1 set 메서드 - intersection(), union(), difference() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 a = {1,2,3,4,5} b = {2,3,4} #교집합 intersec = a.intersection(b) print(intersec) #{2, 3, 4} #합집합 uni = a.union..
1. if 문 1 2 3 4 5 6 7 8 9 10 x = int(input("숫자를 입력하세요")) if x> return 키워드는 반환값을 반환하고 메서드를 종료한 후, 호출자에게 제어를 반환 >> yield 키워드는 각 반환값을 호출자에게 반환하고, 반환값이 모두 소진되었을 때에만 메서드가 종료 - yield 키워드는 제너레이터 맥락에서 이터레이터를 만드는 아주 강력한 도구 - 제너레이터는 최종값을 반환하지만, 이터레이터는 yield 키워드를 사용하여 코드 실행중에 값을 반환한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 def fib_generator(): a,b = 0,1 while True: yield b a,b = b, a+b if __name__ ==..
1. 순차검색 - 배열이 정렬되어 있지 않거나, 연결 리스트와 같이 입력이 동적으로 할당되는 경우 사용 * 배열이 정리 안되어 있을 때 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import pytest def sequential_search(seq,n): for item in seq: if item == n: return True return False def test_sequential_search(): seq = [1,5,6,8,3] n1 = 5 n2 = 7 assert(sequential_search(seq,n1) is True) assert(sequential_search(seq,n2) is False) if __name__ ..