목록시뮬레이션 (3)
algoqna
16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루 동안 연다. 위의 조건에 의해 열어야하는 국경선이 모두 열렸다면, 인구 이동을 시작한다. 국경선이 열려있어 인접한 칸만을 이용해 이동할 수 있으면, 그 나라를 오늘 하루 동안은 연합이라고 한다. 연합을 이루고 있는 각 칸의 인구수는 (연합의 인구수) / (연합을 이루고 있는 칸의 개수)가 된다. 편의상 소수점은 버린다. 연합을 해체하고, 모든..
1. 궁수 3명을 각 행의 m열에 3명을 배치시킬 수 있다, --> mC3의 경우의 수로 궁수를 배치 2. 궁수가 공격할 수 있는 적은 거리가 D이하인 적에서 가장 가까운 적, 그러한 적이 여러명이면 가장 왼쪽에 있는 적을 우선적으로 쏜다. * 즉, 왼쪽 -> 위 -> 오른쪽 순으로 탐색(BFS)하여 제일 먼저 만나는 적이 가장 가까운 적이다. * 최우선으로 가까운 적은 궁수 바로 위에 위치하는 적이므로 시작점(궁수의 바로 위 지점)을 큐에 넣고 탐색 시작 3. 궁수는 동시에 공격하며 같은 적을 공격할 수 있다 * 3명의 궁수가 공격할 수 있는 가장 가까운 적을 3명이 모두 선택하고 나서 적을 죽여야 한다. * 1명이 적 선택하고 바로 죽이고 다른 1명이 적 선택하고.. 안된다는 것. 4. 궁수의 공격이..
- 문제 조건 상기 1. 비어있는 칸 중에서 좋아하는 학생이 인접한 칸에 가장 많은 칸으로 자리를 정한다. 2. 1을 만족하는 칸이 여러 개이면 인접한 칸 중에서 비어있는 칸이 가장 많은 칸으로 자리를 정한다. 3. 2를 만족하는 칸도 여러 개인 경우에는 행의 번호가 가장 작은 칸으로, 그러한 칸도 여러 개이면 열의 번호가 가장 작은 칸으로 자리를 정한다. 문제의 조건을 그대로 따라간다. 위의 파랑색으로 표시한 조건 하나하나가 생성한 info class의 정렬 조건 info class 좋아하는 사람 수 cnt, 빈칸 수 blank 행 row, 열 col 비어있는 칸이라면 --> if 상하좌우에 좋아하는 친구들이 인접, else 빈칸 각각의 경우에 ++ 그렇게해서 해당 위치에 학생을 배치시켰을 때, 학생 ..