문제 https://www.acmicpc.net/problem/16571Algorithm min-max 알고리즘의 기본 형태A와 B가 순서대로 뽑고, 기본 행동 원리는 상대의 이익을 최소화 하기 위해 행동하는 것이다.예를 들어 숫자 3개가 들어있는 박스가 3개가 있다. [3,5,7] [1,2,4] [5,6,8] 상대 플레이어는 여기서 숫자를 하나씩 뽑아서 새로운 숫자 박스를 만든다. [x1,x2,x3] 그리고 상대는 여기서 뽑은 숫자가 상대의 점수가 된다고 했을 때 그 점수를 최소화 하기 위해서는 가장 작은 숫자들만 남기는 것이다. (min) 그렇게 되면 [3,1,5]가 될 것이고, 이 박스에서 가장 큰 숫자를 고를 것이다.(max)이것이 간단한 min-max인데 틱택토에서 현재 board의 상태에서 계..
문제 https://www.acmicpc.net/problem/15686 문제크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다.이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다.임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |..
문제 & 링크https://www.acmicpc.net/problem/20529 풀이1. 입력 및 출력의 개수가 많기에 빠른 입출력을 사용한다.2. MBTI의 개수는 16개이기에 비둘기집 정리에 의해 N이 33개 이상이면 무조건 같은 MBTI 3개가 나온다. 따라서 N이 33개 이상일 때는 답을 0으로 출력해준다.3. N의 개수를 100,000개에서 최대 32개로 줄였으니, 백트래킹을 사용하여 MBTI 조합을 찾아준다. 이때 depth를 사용하여 현재 조합 내에 있는 MBTI의 개수를 판단해준다.4. depth가 3일 경우 심리적 거리를 계산해준다.5. 계산식은 E_cnt * I_cnt + S_cnt * N_cnt + T_cnt * F_cnt + J_cnt * P_cnt이다.6. 심리적 거리의 최솟..