알고리즘 :: 백준 :: 15686 - 치킨 배달
·
Problem Solving
❔문제 🔗문제링크🔄 문제 및 입출력 조건 파악크기가 N×N인 도시, N(2 ≤ N ≤ 50)최대 치킨집 개수 M(1 ≤ M ≤ 13)집의 개수 ≤ 2NM ≤ 치킨집의 개수 ≤ 13도시의 치킨 거리의 최솟값✏️ 문제풀이우선, 문제를 bruteforce로 풀 수 있는지 확인하기 위해, 최악의 경우 몇 번 연산이 필요한지 생각해봅시다.N이 50이고, 총 치킨집이 13개 있으며, 여기서 6개 (또는 7개)를 뽑는 경우라고 생각합시다.치킨집을 뽑는 총 경우의 수는 $_13C_6 = 1,716$입니다.각 경우의 수마다 최대 100개의 집에 대해 치킨거리를 검사합니다.∴ 충분히 시간제한 1초 내로 문제를 풀 수 있다고 판단됐으니, 바로 로직을 생각하러 넘어갑시다.A개 중에서 B개를 뽑는 조합 (combinatio..
알고리즘 :: 백준 :: 1992 - 쿼드트리
·
Problem Solving
❔문제 🔗문제링크 🔄 문제 및 입출력 조건 파악가로/세로 길이를 나타내는 N, 1 ≤ N ≤ 64N개의 문자열, 0과 1로 이뤄져있음.✏️ 문제풀이재귀 가능성 판단하기 전체 흑백영상을 압축하는 과정은 4개의 부분영상 중 하나를 압축하는 과정과 같습니다. 위 그림을 보면 길이만 절반으로 줄어들 뿐이고,범위 내에 있는 데이터가 모두 같다면 그냥 출력하고하나라도 다르다면, 2, 1, 3, 4사분면 순서대로 꼭짓점 위치에서 범위를 절반으로 줄이고 다시 검사하면 됩니다.N은 최대 64, 최대 데이터 수는 $2^{16}$으로 많지 않습니다. 이렇게 전체 문제와 부분 문제가 같다는 점 + 처리할 데이터가 많지 않다는 점을 파악해서 재귀로 풀 수 있어야 합니다. 풀이과정시작점 `(y, x)`에서 가로, 세로로 `l..
알고리즘 :: 백준 :: 2309 - 일곱 난쟁이
·
Problem Solving
❔문제  🔗문제링크  🔄 문제 및 입출력 조건 파악입력: 9명 키, 100을 넘지 않음출력: 키 합 100인 7명 조합 아무거나✏️ 문제풀이난쟁이 9명 중 7명을 뽑아 구한 키의 합이 100일 때 출력하는 bruteforce 문제입니다.9명 중 7명을 뽑는 것($_9C_7$)은, 9명 중 2명을 뽑는($_9C_2$) 경우의 수와 같습니다. 총 인원의 키 합에서 100을 뺀 값을 `diff`라 할 때2중 for문을 돌려서 선택한 2명의 키 합이 `diff`면 출력합니다.재귀함수를 돌려서 2명을 선택하고, 키 합이 `diff`면 출력합니다.오름차순으로 출력해야 하기 때문에, 2중 for문을 돌리던, 재귀함수를 돌리던 먼저 정렬부터 하는 것을 잊지 맙시다.📝 코드2중 for문 방법#include usin..