목록 code review/binary search (4)
KEEP GOING
https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [key point] - 이진탐색이므로 탐색할 배열 정렬하기 - 양쪽을 번갈아가며 탐색하는지 검사하기 [구현] def binarySearch(arr, start, end, target): # 번갈아 방문하는지 검사 check = 0 while start target: # 왼쪽을 반복 방문했다면 if check == -1: return False end = mid - 1 check = -1 else: return True return Fals..
https://programmers.co.kr/learn/courses/30/lessons/60060 코딩테스트 연습 - 가사 검색 programmers.co.kr 1. 정답인 코드 from bisect import bisect_left, bisect_right def count_by_value(a, left_value, right_value): left_idx = bisect_left(a, left_value) right_idx = bisect_right(a, right_value) return right_idx - left_idx array = [[] for _ in range(10001)] reversed_array = [[] for _ in range(10001)] def solution(word..
N개의 원소를 포함하고 있는 수열이 오름차순으로 정렬되어 있습니다. 이때 이 수열에서 x가 등장하는 횟수를 계산하세요. 단, 이 문제의 시간 복잡도 O(logN)으로 알고리즘을 설계하지 않으면 '시간 초과' 판정을 받습니다. 입력 예시 7 2 1 1 2 2 2 2 3 출력 예시 4 1. 정답 코드 import sys def countValue(arr, target): first = 0 last = len(arr)-1 start = findFirstIndex(arr, target, first, last) if start == None: return 0 end = findLastIndex(arr, target, first, last) return end - start + 1 # 가장 맨 왼쪽에 있는 원소 인..
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 1. 정답 # 랜선 자르기 k, n = map(int, input().split()) lines = [int(input()) for _ in range(k)] first = 1 last = max(lines) res=0 while(first=n: first = mid+1 res=mid else: last = mid-1 print(res) 2. 강사님 풀이 # 랜선 자르..