본문 바로가기

분류 전체보기

(239)
[Python] 숫자 리스트에서 2번째, K번째 최댓값 구하기 1. 두번째 최댓값 구하기 def second_largest_number(arr): eigen_nums = set(arr) sorted_nums = sorted(eigen_nums, reverse=True) return sorted_nums[1] 중복을 허용하지 않기 때문에 함수의 첫번째 줄에서 정렬을 하기 전에 고유값만 남기도록 코드를 작성하였다. 그리고 정렬을 내림차순으로 진행하고 2번째 값을 반환하면 된다! 2. K번째 최댓값 구하기 def kth_largest_number(arr, K): eigen_nums = set(arr) sorted_nums = sorted(eigen_nums, reverse=True) return sorted_nums[K-1] 두번째 최댓값을 구할때는 1을 인덱스를 반환했..
[Algorithm] 최장 증가 부분 수열(LIS) 원소가 n개인 배열의 일부 원소를 골라내서 만든 부분 수열 중, 각 원소가 이전 원소보다 크다는 조건을 만족하고, 그 길이가 최대인 부분 수열을 최장 증가 부분 수열이라고 한다. {6, 2, 5, 1, 7, 4, 8, 3} 이라는 배열이 있을 경우, LIS는 {2, 5, 8, 7} 이고, 길이는 4 {2, 5}, {2, 7} 등 증가하는 부분 수열은 많지만 그 중에서 가장 긴 것은 {2, 5, 8, 7} {10, 20, 10, 30, 20, 50} 이라는 배열이 있을 경우, LIS는 {10, 20, 30, 50} 이고, 길이는 4 D[i] = arr[i]를 마지막 원소로 가지는 부분 수열의 최대길이 라고 정의할 때, 가장 긴 증가하는 부분 수열을 계산하는 점화식을 작성해보면, 다음과 같다. (DP 테이블..
[React] PostCSS 사용법 보호되어 있는 글입니다.
[React] 프로젝트 만들기 아래의 사이트에서 확인하자. https://create-react-app.dev/docs/getting-started/ Getting Started | Create React App Create React App is an officially supported way to create single-page React create-react-app.dev
[Algorithm] 정렬된 배열에서 특정 수의 개수 구하기 문제 N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요. 값이 x인 원소가 하나도 없다면 -1을 출력합니다. (단, 이 문제는 시간 복잡도 O(logN)으로 알고리즘을 설계하지 않으면 '시간 초과' 판정을 받습니다.) 입력 조건 첫째 줄에 N (0
[Algorithm] 1로 만들기 문제 정수 X가 주어질때 정수 X에 사용할 수 있는 연산은 다음과 같이 4가지이다. 1) X가 5로 나누어떨어지면, 5로 나눈다. 2) X가 3으로 나누어 떨어지면, 3으로 나눈다. 3) X가 2로 나누어 떨어지면, 2로 나눈다. 4) X에서 1을 뺀다. 정수 X가 주어졌을때, 연산 4개를 적절히 사용해서 1을 만들어야한다. 이 연산을 사용하는 횟수의 최솟값을 출력해라. 입력 조건 첫째 줄에 정수 X가 주어진다. (1
[Algorithm] Dynamic Programming (동적 계획법) 다이나믹 프로그래밍 컴퓨터는 연산 속도에 한계가 있고, 메모리 공간을 사용할 수 있는 데이터의 개수도 한정적이다. 그래서 우리는 연산 속도와 메모리 공간을 최대한으로 활용할 수 있는 효율적인 알고리즘을 작성해야 한다. 어떤 문제에서는 메모리 공간을 약간 더 사용하면 연산 속도를 비약적으로 증가시킬 수 있는 방법이 있다. 대표적인 방법이 다이나믹 프로그래밍 기법으로 동적 계획법이라고 표현하기도 한다. 피보나치 수열 다이나믹 프로그래밍의 대표적인 예시인 피보나치 수열을 보자. 피보나치 수열은 이전 두항의 합을 현재의 항으로 설정하는 특징이 있는 수열이다. 피보나치 수열은 다음과 같은 형태로 끝없이 이어진다. 이를 점화식으로 나타냈을 때 알 수 있는 특징은 다음과 같다. f(n) = f(n - 1) + f(n..
[Algorithm] 부품 찾기 문제 동빈이네 전자 매장에는 부품이 N개 있다. 각 부품은 정수 형태의 고유한 번호가 있다. 어느 날 손님이 M개의 종류의 부품을 대량으로 구매하겠다며 당일 날 견적서를 요청했다. 동빈이는 때를 놓치지 않고 손님이 문의한 부품 M개 종류를 모두 확인해서 견적서를 작성해야 한다. 이때 가게 안에 부품이 모두 있는지 확인하는 프로그램을 작성해보자. 예를 들어 가게의 부품이 총 5개일 때 부품 번호가 다음과 같다고 하자. 입력 첫째 줄에 정수 N이 주어진다. (1target: return bs(arr,target,start,mid-1) else : return bs(arr,target,mid+1,end) for i in x: result = bs(array, i, 0, n - 1) if result != No..