https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 플로이드 알고리즘 그대로 구현하면 되는 문제이다. 단 !!! 시작 도시와 도착 도시를 연결하는 노선이 여러개일 수 있다 따라서 입력 받을 때, cost가 가장 작은 노선만 남겨두는 처리 과정이 필요하다 # 플로이드 INF = int(1e9) n = int(input()) # 도시 개수 m = int(input()) # 버스 개수 graph = [[INF]*(n+1) for _ in range(n+..
전체 글
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻❄️☁️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. 어떤 이벤트에 의해 호출되어지는 함수 오케이... 엄청 간단한 의미었다 !