본문 바로가기

코딩테스트 알고리즘2

이진탐색 (Binary Search) 알고리즘 00 개요목표: 코딩테스트 뽀개기!01 이진탐색 (Binary Search)1. 이진탐색이란어떤 값을 찾을 (탐색할) 때 정렬의 특징을 이용해 빨리 찾는 알고리즘정렬되어있을 경우, 어떤 값을 찾을 떄: O(N) → O(lgN)처음부터 생각하기 어려움, 쉬운 방법부터 생각예) 1~4 숫자 중 특정 숫자를 찾을 때모두 탐색: O(N), 1부터 4까지 순서대로 비교 (1과 비교, 아니면 2와 비교, 아니면 3과 비교 ...)이진 탐색: O(lgN), 전체 숫자를 반으로 잘라 자른 것 중 가장 가까이 있는 숫자와 비교 (자른 후 1, 2 | 3, 4로 나뉨, 2와 비교, 더 크면 더 큰 무리(3, 4)를 3 | 4로 나눈 후 3과 비교)2. 핵심 코드아래 코드는 미리 외워둬야됨!def search(start, .. 2025. 2. 21.
DP (Dynamic Programming) 알고리즘 00 개요목표: 코딩테스트 뽀개기!01 DP1. DP란Dynamic Programming이전의 값을 재활용하는 알고리즘예) 1 ~ 10 숫자 중 각각 이전 값들을 합한 값 구하기이전의 값을 활용해서 시간복잡도 축소 가능2. 연습 문제: 백준 117262×n 타일링링크: https://www.acmicpc.net/problem/117261) 문제Q:2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.입력:첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)출력:첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.예제 입력 1:더보기2예제 출력 1:더보기.. 2025. 2. 6.