sailorCat

Python/Python 5

카테고리 설명
  • 출력을 사용할 때 {} 브리켓 안에 변수를 넣고 싶다면 .format(변수)를 넣으면 가능하다.

  • 순열 Permutation 리스트 내부에 있는 것들을 순서를 고려해 나열하는 가짓수. 서로 다른 n개 중 r개를 골라 순서를 정해 나열 nPr [A, B, C] 에서 n=3 r=2로 하면 [(A,B) (A,C) (B,A) (B,C) (C,A) (C,B)] 6개가 나온다 from itertools import permutations arr = ['A', 'B', 'C'] permu = itertools.permutations(arr,2) 조합 combination 리스트 내부에 있는 것들을 순서를 고려하지 않고, 나열하는 가짓수. 서로 다른 n개 중 r개를 골라 순서를 정해 나열 nCr [A, B, C] 에서 n=3 r=2로 하면 [(A,B) (A,C) (B,C) ] 6개가 나온다 from itertool..

  • 눈물을 머금고 힙 큐를 정리해보겠다. Heap 정렬은 이진트리의 구조로, 부모노드의 값이 반드시 자식노드의 값보다 크거나 같아야 한다. 그래서 정렬을 모두 마친뒤에 힙 구조가 완성되면 루트노드의 값이 최댓값이 되며 가장 오른쪽 말단의 노드가 최솟값을 가지게 된다. 그런데 이것은 최대 힙 트리의 구현이다. 파이썬과 알고리즘에서 쓰이는 Heap 정렬은 최소 힙의 구현이다. Min-priority-queue 이며, 내장 모듈인 Heapq를 사용할 수 있다. 가장 작은 값은 인덱스0, 루트노드에 항상 위치한다. 기본적으로 Heapq는 리스트의 성질을 갖기 때문에 여러 값을 넣을 수 있고, 다중배열처럼 사용이 가능하지만 가장 처음에 위치한 값을 기준으로 최대최소를 비교하게 된다. 가장 먼저 힙큐 모듈을 가져온다...

  • 파이썬의 람다함수는 람다식과 익명함수라고 불리고, 하나의 틀 안에서 쓰고 일시적으로 사용하는 함수이다. 함수의 definition을 쓰는 것이 아니기 때문에, 재 사용성이 없지만 단순히 한번만 사용할 때는 용이하고 메모리를 절약할 수 있기 때문에 경우에 따라서 효율성에 도움이 될 수 있게 사용할 수 있다. 만약에 여러번 사용하는 함수를 정의하지 않고, 매번 람다식을 적어 사용하면 가독성도 그리고 효율성도 떨어지지만 한번만 사용하는 함수라면 람다식을 쓰는것이 가독성과 효율성 모두 얻을 수 있다. 객체지향 코드인 Python에서 모든 것을 객체로 관리하고 사용하는데 Heap 메모리 안에서 모든 객체들의 각자의 레퍼런스 카운터를 갖게되어, 카운터가 참조하지 않고 일정시간이 지나면 메모리를 환원하여 가비지 콜렉..

  • 컴퓨터 보안 시간에 받았었던 간단한 과제이다. N =3174654383 c = 2487688703 e = 65537 이렇게 상수를 받았다. 난 손으로 수학 문제 푸는걸 싫어한다. 덤벙거리는 기질이 있어서 항상 -1, +1 이런걸 놓쳐서 많이 틀렸기 때문이다. 수학선생님은 항상 내가 아는 것보다 실전에서 점수가 너무 많이 깎이는 걸 어이없게 생각했었다. RSA 키와 메시지를 알아내는 걸 손으로 풀게 시킨다? 크큭....... 하지만 컴퓨터로는 할 수 있지.