본문 바로가기

코테 준비

(4)
[알고리즘] Binary Search Binary Search 이진 탐색 알고리즘을 말 그대로 탐색 알고리즘이다. 하지만 단순하게 처음부터 마지막까지 순서대로 비교하면서 탐색하는 방법이 아닌, 탐색 범위를 좁혀가며 데이터를 찾아내는 방식이다. 이진 탐색 알고리즘을 적용하기 위한 조건으로 배열 혹은 리스트에 있는 데이터들은 정렬이 되어있어야 한다. 그리고 찾으려는 데이터와 중간점에 위치한 데이터를 반복적으로 비교하면서 원하는 데이터를 찾게 된다. 이진 탐색 알고리즘은 재귀호출을 이용하여 구현할 수도 있고, 반복문을 이용해서 구현할 수도 있다. Example Code def binary_search(source, target, start, end): if start > end: return None mid = (start + end) // 2 ..
[문제풀이] 백준 1463번 1로 만들기 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제풀이 N = int(input()) dp_table = [0] * (N+1) for i in range(2, N+1): dp_table[i] = dp_table[i-1] + 1 if i % 3 == 0: dp_table[i] = min(dp_table[i], dp_table[i//3] + 1) if i % 2 == 0: dp_table[i] = min(dp_table[i], dp_table[i//2] + 1) print(dp_table[N])
[문제풀이] 백준 14713번 앵무새 14713번: 앵무새 자가용 비행기를 타고 세계 일주를 하던 pps789와 cseteram은 어느 날 엔진 고장으로 인해 이름 모를 섬에 불시착하게 된다. 그들은 이 섬을 탐험하는 도중 아주 신기한 사실을 알게 되었는데, 바로 www.acmicpc.net 7차 시도 n = int(input()) lines = [] for i in range(n): lines.append(list(map(str, input().split()))) target = list(map(str, input().split())) for item in target: correct = False for idx in range(n): if len(lines[idx]) != 0: if item == lines[idx][0]: lines[i..
[문제풀이] 백준 13335번 트럭 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 1차 시도 total_count = 0 n, w, L = map(int, input().split()) trucks = list(map(int, input().split())) bridge = [0] * w while True: bridge.pop(0) total_count += 1 if len(trucks) > 0: if sum(bridge) + trucks[0]