1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수=가장 맵지 않은 음식의 스코빌 지수+(두 번째로 맵지 않은 음식의 스코빌..
최댓값과 최솟값을 찾는 연산을 빠르게 하기 위해 고안된 완전이진트리 트리는 root node에서 밑으로 가지를 뻗어나가는 형태의 자료구조로 binary tree인 이진 트리는 최대 2개까지만 자식 노드를 가진다 최소힙은 부모 node가 자식 node보다 항상 작은 binary tree 최대힙은 부모 node가 자식 node보다 항상 큰 binary tree heap은 배열로 구현되며 파이썬에서는 list로 만들어진다 import heapq를 통해 파이썬에서 heapq 관련 함수 사용가능 기존 리스트를 heapq로 만들려면 heapify()를 이용 heap2 = [50,10,20] heapq.heapify(heap2) print(heap2) [10,50,20] 혹은 빈 리스트를 생생한 후에 heappush..
1. 문제 https://programmers.co.kr/learn/courses/30/lessons/49189 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 개수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return하도록 solution ..
1. lambda 함수 이름 없이 함수처럼 쓰는 익명함수 lambda (parameter) : (return) (condition) 구조 return 값은 보통 한줄정도로 짧게 사용을 권장하지는 않으나 여전히 사람들이 많이 씀 왜 권장하지 않느냐? 테스트 하기 어려움, 이해하기 어려움, 함수의 docstring도 불가능 2. map 시퀀스형 데이터 각 요소에 특정한 함수를 적용시켜주는 함수 여러개의 파라미터를 갖는 함수라면 여러개의 리스트를 받을 수 있음 a = [1,2,3,4,5] f = lambda x:x**2 list(map(f,a)) [1,4,9,16,25] f = lambda x,y : x+y list(map(f,a,a)) [2,4,6,8,10] 이해하기 어려워 사용을 권장하지는 않는다 f = ..
1. 직사각형에 자연수를 순서대로 집어넣기 rows * columns 직사각형에 1,2,3,...을 순서대로 집어넣을려면 matrix = [ [row * columns + (column+1) for column in range(columns)] for row in range(rows)] rows = 4 columns = 3 matrix = [[row*columns + (columns+1) for column in range(columns)] for row in range(rows)] print(matrix) [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 2. 직사각형 배열에서 열을 뽑는 방법 j+1열을 뽑고 싶으면 [row[j] for row in matrix] j = 2 [row[j..
1. argument 1-1) keyword argument 함수에 parameter의 이름을 입력하여 값을 넘기는 방식 def f(x,y): return x+y f(1,2) 3 f(x=1,y=2) ###keyword argument 3 1-2) default argument 함수의 paramter의 기본값을 지정해놓은 방식 default가 없는 인자는 디폴트 인자 앞에 와야함 def f(x,y,z=4): return x+y*z f(1,2) 9 z에 값이 들어가지 않고 z=4인 기본값을 넣고 y=2를 넣은 것이라고 인식을 함 f(1,2,5) 11 z에 기본값인 z=4를 넣지 않고 z=5라고 사용자가 직접 지정을 해서 넣어줌 2. asterisk 2-1) variable-length 함수 정의에서 인자에 ..