문제풀이

사실 재미있어서 함
문제풀이

백트래킹 개념을 잡자

백트래킹은 주로 재귀를 이용한 브루트포스 문제풀이에 쓰이는 알고리즘입니다. 특정 조건이 주어졌을 때 가능한 모든 해의 경우를 셀 때 등에 유용합니다. 백트래킹은 백날 개념을 설명해봐야 코드보고 이해하는 것만 못합니다. 가장 대표적인 N과 M 시리즈를 봅시다. # N과 M 시리즈 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 백트래킹의 가장 대표적인 문제 유형인 N과 M입니다. 고등학교 수학에서 nCm이라 불리는 조합을 찾아내는 문제인데요, ..

문제풀이

이진 탐색(Binary Search) 깔끔하게 하기

백준 공유기 문제, 프로그래머스 징검다리 같은 parametric search 문제를 풀면서 그동안 중구난방으로 해왔던 custom binary search를 조금 더 정형적으로 해보도록 하자. 이진 탐색 기본 구조 : 범위 설정 - 기준값 도출 - 범위 재설정 반복 검색을 할 범위를 left, right로 두고 그 중간인 middle이 조건에 맞는지 검색한다. 조건에 맞는 방향으로 범위를 축소시켜 원하는 답이 한 개로 좁혀질 때까지 탐색을 반복하는 것이 이진 탐색의 기본 원리이다. 목표 값이 middle값보다 작으면 right값을 middle 이하로 조정하여 기준값보다 작은 범위에서 탐색하고, 반대라면 left값을 middle 이상으로 조정하여 기준값보다 큰 범위에서 탐색한다. 이 때 left와 rig..

김부추
'문제풀이' 카테고리의 글 목록