Heap? 최댓값과 최소값을 빠르게 찾기 위한 완전 이진트리 기반 자료구조 인덱스 n번째 노드의 자식노드가 2개라고 하면 왼쪽 자식 노드의 인덱스는 2n, 오른쪽 자식 노드의 인덱스는 2n+1 최소힙(Min Heap) 각 노드가 해당 노드의 자식 노드보다 크지 않거나 작은 완전이진트리! 최대힙(Max Heap) 각 노드가 해당 노드의 자식 노드보다 작지 않거나 큰 완전이진트리! heapq 모듈 파이썬에 기본 모듈로 바로 import 해서 사용할 수 있다. 기본적으로 최소 힙(Min Heap)을 사용한다!! import heapq heappush() heap에 item 추가하기 import heapq heap = [] heapq.heappush(heap, 4) heapq.heappush(heap, 1) h..
itertools 파이썬에서 itertools 라이브러리를 이용하여 매우 간편하게 순열, 조합, 중복순열, 중복조합을 구할 수 있다! 순열 중복을 허용하지 않고 r개를 뽑힌 순서대로 나열한다. 만약 (1, 2) (2, 1) 이 있다면 다른 경우의 수로 취급! 튜플로 반환 from itertools import permutations for i in permutations([1, 2, 2, 3], 2): print(i, end=" ") // (1, 2) (1, 2) (1, 3) (2, 1) (2, 2) (2, 3) (2, 1) (2, 2) (2, 3) (3, 1) (3, 2) (3, 2) 조합 중복을 허용하지 않고 r개를 뽑기만 한다 만약 (1, 2) (2, 1)이 있다면 같은 경우의 수로 취급한다! fr..
메타문자 . ^ $ * + ? { } [ ] \ | ( ) 메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자를 말한다. 문자 클래스 [ ] 문자 클래스를 만드는 메타 문자인 [ ] 사이에는 어떤 문자도 들어갈 수 있다. [ ] 사이의 문자들 중 한 글자를 의미한다. 예를들어 [abcd]라면 a, b, c, d 중 한개라는 의미이다. [ ] 안의 -는 범위를 의미한다. [0-9]라면 0~9 사이 숫자중 하나라는 의미이다. [ ] 안의 맨 앞의 ^는 NOT을 의미한다. [^0-9]라면 0~9를 제외한 문자 하나를 의미한다. 주의사항 ! [ ] 사이에서 ^를 쓰고 싶으면 맨 앞에 쓰면 안됨! NOT을 의미하기 때문 Dot(.) .은 줄 바꿈 문자인 \n을 제외한 모든 문자와 매치됨을 의..
https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 nums에 들어있는 숫자의 개수는 3개..