https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 이진탐색 라이브러리인 bisect의 bisect_left와 bisect_right을 이용하여 같은 길이의 가사들 중에서 쿼리를 포함하는 단어의 첫 인덱스, 마지막 인덱스 차이를 구한다 ! 이진 탐색 라이브러리 bisect 정리 : https://sinclairstudio.tistory.com/85 python bisect, bisect_left, bisect_right Python에서 이진탐색을 라이브러리로 제공한다 ! bisect 라이브러리는 정렬된 배열 내에서 특정 원소를 찾을 때 O(logN)으로 동작한다. bisect_left() 함수..
분류 전체보기
Python에서 이진탐색을 라이브러리로 제공한다 ! bisect 라이브러리는 정렬된 배열 내에서 특정 원소를 찾을 때 O(logN)으로 동작한다. bisect_left() 함수 : 정렬된 순서를 유지하면서, 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메소드 bisect_right() 함수 : 정렬된 순서를 유지하면서, 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메소드 중요한건 정렬된 순서를 유지! 하면서 인덱스를 찾는것이다 예를 들어 리스트 [1, 2, 4, 4, 8] 이 있다면 bisect_left(a, 4)는 리스트에서 4가 처음으로 등장하는 위치인 2를 반환한다. 그리고 bisect_right(a, 4) 는 리스트를 4가 마지막으로 등장하는 위치 인덱스 +1 의 위치인..
나의 시간 초과 코드 ㅋㅋㅋㅋ 답은 나오는데....비효율적이라는 거지 # 2110 공유기 설치 from itertools import permutations n,c = map(int, input().split()) array = [] for i in range(n): array.append(int(input())) result = 0 array.sort() # 탐색을 위해 정렬하기 for case in permutations(array, c): temp = n for i in range(c-1): temp = min(temp, case[i+1]-case[i]) result = max(temp, result) print(result) 이 문제의 유형은 이진탐색이다 .. 이진탐색 !!! 즉, '최대 인접 거..
https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net n = int(input()) array = list(map(int, input().split())) dp = [1]*n # 자기 자신 1개로도 길이가 1인 수열이 될 수 있으므로 1로 초기화를 해줍니다 ! for i in range(n): for j in range(i, n): if array[i] > array[j]: ..
def solution(N, stages): answer = [] length = len(stages) for i in range(1, N+1): count = stages.count(i) if length == 0: fail = 0 else: fail = count/length answer.append((i, fail)) # 실패율이 0이어도 필요함 length -= count answer.sort(key = lambda x : x[1],reverse = True) answer = [i[0] for i in answer] return answer 유형 : 정렬 원래 풀이는, 스테이지 도달한 사람을 센 array, 실패율 array, 실패한 사람 array 각각 만들어줬었는데 시간 초과가 났다 ㅠㅠ 핵심..
·개발일기
21일이면 습관이 형성된다고 하는데 !! 뿌듯하다 남은 방학 동안도 알고리즘 공부 제대로 정복하겠어 ! 플레 가보자고 ~!
·iOS
콜백 함수 콜백함수 어디서 많이 들어봤는데 대체 뭘까!!!!! callback 함수란 1. 다른함수의 인자로써 이용되는 함수 2. 어떤 이벤트에 의해 호출되어지는 함수 오케이... 엄청 간단한 의미었다 !
https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net n = int(input()) a = [] for i in range(n): a.append(input().split()) a.sort(key=lambda x:(-int(a[1]), int(a[2]), -int(a[3]), a[0])) for i in a: print(i[0]) lambda 함수 는 익명함수 ! 즉 이름이 없는 함수이다. runtime에 생성해서 사용할 수 있..