전체 글
-
파이썬, 빠른 정렬(퀵 소트, Quick Sort)Python/파이썬 자료구조 알고리듬 2020. 10. 28. 18:37
호어 선생님이 만드신 빠른 정렬~! 분할 정복 알고리듬을 이용합니다. (머지 소트도 분할 정복이죠.) 불안정 정렬입니다. ([A1, A2]를 'A를 기준'으로 '숫자를 무시'하고 정렬했을 때 A1, A2의 순서가 바뀔 수 있습니다.) [A, B, A, C, A]를 정렬하면 [A, A, A, B, C]가 되는데.. A, A, A 간 순서가 어떻게 되든 무슨 상관이냐 라고 생각할 수 있는데.. [A1, B2, A2, C1, A3]의 경우 두 번째 숫자를 기준으로 정렬한 뒤, [A1, C1, B2, A2, A3]를 첫 번째 문자를 기준으로 한 번 더 정렬해서, [A1, A2, A3, B2, C1]를 만들어야 할 경우도 있습니다. (스프레드 시트 작업에서 많이 씁니다. ) 불안정 정렬로는 이런 작업이 어렵습니다..
-
Windows 네트워크 관련 명령어네트워크 2020. 10. 27. 22:33
ping 호스트가 네트워크에 연결되어 있는지 테스트하는 명령입니다. IP(Internet Protocol) 네트워크의 호스트에 ICMP (Internet Control Message Protocol) 에코 요청을 전송하여 연결을 확인합니다. - n : 요청 회수 지정 - t : 사용자 중지 요청(Ctrl+C) 시까지 계속 - l : 패킷 크기 지정 - i : 중간 라우터 경유 개수 지정 - f : IP 조각화 안 함 ping 기본적으로 4회 수행됩니다. ping을 차단한 호스트에서는 요청시간 만료가... 게이트웨이가 잘못된 경우에도 위 메시지를 볼 수 있습니다. (요즘은 수동 설정하는 경우가 거의 없지만...) ping -l 패킷 데이터 크기 지정: ping 전송 오류를 쉽게 찾기 위해서 패킷의 크기를 ..
-
파이썬, RSA 암호화Python/파이썬 자료구조 알고리듬 2020. 10. 26. 03:06
더보기대칭키 암호화일반적으로 암호라고 하면 떠올리는 방식입니다.암호문을 생성할 때, 복원할 때 같은 키를 사용합니다.난수표나 시저 암호도 대칭키 암호화죠. 장점은 단순하기 때문에 빠르다는 것.단점은 빠르다는 것 외에는 모두 다입니다. 보내는 사람 받는 사람이 같은 키를 가지고 있기 때문에 분실에 취약하다는 점이 있습니다. 2명이 가지고 있으면 사고 날 확률도 2배... 대칭키는 비밀을 유지하기 위해서 개인별 암호가 필요합니다.(여러 명의 스파이에게서 보고를 받을 때...스파이마다 암호가 달라야 스파이 사이에도 비밀이 유지됩니다.)암호 관리가 힘듭니다. 문서에 대한 인증이 필요할 때 공인 인증 기관이 필요합니다. 이런 단점을 극복하고자 공개키 암호화가 나왔습니다.공개키 암호화수학적인 쌍을 이루는 두 개의..
-
파이썬 / finance-datareaderPython/파이썬과 주식, 코인 2020. 10. 25. 21:57
https://github.com/FinanceData/FinanceDataReader?fbclid=IwAR284V-_eOCOIKj5Fx120RYYTGeZcDGwsqz0NSqt64pGMngIKF-iGBcg35o FinanceData/FinanceDataReader Financial data reader. Contribute to FinanceData/FinanceDataReader development by creating an account on GitHub. github.com https://www.notion.so/FinanceData-KR-6da3ac1cb8864178a4a61d9bc319cb53 FinanceData.KR www.notion.so 설치 beautifulsoup4, requests..
-
Python Zip 2차원 배열 회전Python/이것저것 파이썬 2020. 10. 24. 16:53
1. zip 내장 함수(BIF) zip은 각 iterables의 요소들을 하나씩 모아 이터레이터를 만듭니다. iterable (이터러블) 멤버들을 한 번에 하나씩 돌려줄 수 있는 객체. 이터러블의 예로는 모든 (list, str, tuple 같은) 시퀀스 형들, dict 같은 몇몇 비 시퀀스 형들, 파일 객체들, __iter__() 나 시퀀스 개념을 구현하는 __getitem__() 메서드를 써서 정의한 모든 클래스의 객체들이 있다. a = [1, 2, 3, 4, 5] b = ['a', 'b', 'c', 'd', 'e'] for each in zip(a, b): print(each) (1, 'a') (2, 'b') (3, 'c') (4, 'd') (5, 'e') 튜플로 돌려줍니다. 파이썬에선 튜플이 기본..
-
풍선 터트리기코딩 테스트/Level 3 2020. 10. 23. 08:40
풍선 터트리기 월간 코드 챌린지 시즌1 261명 완료 https://programmers.co.kr/learn/courses/30/lessons/68646 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr Python 리스트의 양 끝 요소는 최후까지 살아남습니다. 리스트의 끝 요소를 최소값으로 잡고 탐색합니다. 최소값은 탐색을 진행하면서 갱신되는데, 한 번이라도 최소였던 값들은 살아남습니다. 현재의 최소값보다 큰 값은 탈락입니다. 양쪽에서 진행하면 됩니다. 아래 코드는 양쪽에서 동시에 진행했습니다. def solution(a): answer = set() min_a1, min_a2 = a[0], a[-1] for a1..
-
삼각 달팽이코딩 테스트/Level 2 2020. 10. 22. 00:10
삼각 달팽이 월간 코드 챌린지 시즌1 413명 완료 https://programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr Python def solution(n): triangle = [[0] * i for i in range(1, n + 1)] phase = [(1, 0), (0, 1), (-1, -1)] phase_index = x = y = 0 count = 1 for i in range(n, 0, -1): for j in rang..
-
두 개 뽑아서 더하기코딩 테스트/Level 1 2020. 10. 21. 00:10
두 개 뽑아서 더하기 월간 코드 챌린지 시즌1 1861명 완료 https://programmers.co.kr/learn/courses/30/lessons/68644 코딩테스트 연습 - 두 개 뽑아서 더하기 programmers.co.kr Python def solution(numbers): return sorted(list(set(numbers[i] + numbers[j] for i in range(len(numbers)) for j in range(i + 1, len(numbers))))) def solution(numbers): return sorted(list({numbers[i] + numbers[j] for i in range(len(numbers)) for j in range(i + 1, le..