본문 바로가기

브루트포스

백준 알고리즘 15686 입력 : 도시의 크기와 유지할 치킨집의 최대 개수 M, 도시 정보 출력 : 치킨집의 최대 개수(M)만큼을 제외하고 모두 폐점시켰을 때 치킨거리의 최소값 풀이 1. 입력받을 때 치킨집과 가정집의 위치를 따로 벡터에 저장한다. 2. 모든 치킨집 중 M개를 고르는 재귀함수를 구현해 M개를 고른 뒤 치킨거리를 구한다. 3. 치킨집을 고른 결과가 중복이 되지 않도록 재귀함수를 구현한다. 중복처리 안하면 시간초과남 #include #include #include #include using namespace std; struct Point{ int x; int y; }; Point getPoint(int x, int y){ Point result; result.x = x; result.y = y; return res..
백준 알고리즘 14889 입력 : 축구 인원 N과 능력치 테이블 출력 : 팀을 구성하는 경우의 수 중에서 두 팀 간의 능력치차이가 제일 적을 경우의 능력치 차이 값 풀이 1. 한 팀을 만드는 모든 경우의 수를 재귀함수를 통해 구한다. -> 재귀실행 1회 당 선수 1명 영입 -> 재귀실행 N/2회 실행시(기저조건), teamA에 인원이 N/2명이면 팀 능력치 계산 -> teamA에 없는 선수를 teamB에 영입해 능력치 계산 후 차이를 계산해 리턴 2. 중복을 피하기 위해 i번 선수 영입 후 다음 영입 선수는 i+1이상의 선수 중에서 선택 소스코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 3..