C++(10)
-
NYPC 2021 예선 | K-좀비
[문제] 우니는 놀이공원에 있는 좀비 어트랙션에 들어가게 되었다. 좀비 어트랙션은 N개 행과 M개 열의 격자로 이루어져 있다. 우니는 처음에 격자의 왼쪽 위인 1번째 행, 1번째 열 격자 칸에서 시작해서, 격자의 오른쪽 아래인 N번째 행, M번째 열 격자 칸까지 가려고 한다. 우니는 현재 있는 칸에서 위, 아래, 왼쪽, 오른쪽 칸 중 하나로 움직일 수 있다. 우니는 좀비 때문에 겁에 질려있기 때문에, 움직이지 않고 가만히 있을 수는 없다. 한 칸을 움직이는 데는 1의 시간이 걸리며, 처음에는 시각 0으로 시작한다. 즉, 현재 시각은 지금까지 움직인 횟수와 같다. 좀비 어트랙션의 각 격자 칸은 다음 중 하나이다. 빈칸: 우니가 자유롭게 오갈 수 있는 격자 칸이다. 벽: 우니가 오갈 수 없는 격자 칸이다. ..
2023.08.01 -
NYPC 2022 예선 | 인류의 적 모기 퇴치
[문제] 최근 이상 기후로 인해 붐힐 마을에 모기가 많이 늘어났다. 마리드는 붐힐 마을 주민들을 돕기 위해 물풍선으로 모기들을 퇴치하려고 한다. 마리드는 기존의 십자 모양의 물풍선만으로 모기를 효율적으로 퇴치할 수 없다는 것을 깨달았고, 엑스 자 모양으로 터지는 물풍선을 새로 개발했다. 붐힐 마을은 N x N 크기의 22차원 배열로 표현할 수 있고, 배열의 각 칸에 존재하는 모기의 수가 주어진다. 마리드는 한 칸을 선택하여 물풍선을 놓고 터트린다. 물풍선을 터트리면 범위 M으로 물줄기가 뻗어나가 모기를 퇴치할 수 있다. 예를 들어, 십자 모양의 경우, 물풍선을 터트린 칸에서 위쪽, 오른쪽, 아래쪽, 왼쪽의 M개 칸 이내의 모든 모기를 퇴치한다. 엑스 자 모양의 경우, 네 개의 대각선 방향으로 M개 칸 이..
2023.07.18 -
NYPC 2021 예선 | 페인트 칠하기
[문제] N×M 크기의 격자판이 있다. N 개의 행은 1부터 N까지 번호가 매겨져 있고, M 개의 열은 1부터 M까지 번호가 매겨져 있다. 1부터 7까지 일곱 가지의 색을 격자판에 칠할 수 있다. 색을 칠할 때는 격자판의 한 행을 선택해서 그 행에 있는 모든 격자 칸에 한 색을 덧칠할 수 있고, 혹은 격자판의 한 열을 선택해서 그 열에 있는 모든 격자 칸에 한 색을 덧칠할 수 있다. 예를 들어, 아래와 같이 4×4 크기의 격자판이 있다고 하자. 초기에 각 격자 칸에는 아무런 색이 칠해져 있지 않다. 다음 은 3 번 행에 빨간색(1번 색)을 칠하고 3 번 열에 파란색(3번 색)을 칠했을 때의 과정을 보여준다. 각 격자 칸마다 최종적으로 칠해져 있는 색이 주어질 때, 적절히 색을 칠해 주어진 상황이 되도록 ..
2023.07.11 -
NYPC 2021 예선 | 파티
[문제] 기말 시험이 끝난 N 명의 친구들은 파티를 하기로 했다. 파티에 필요한 음식과 물품들을 사기 위해 각자 미리 돈을 사용했다. 친구들은1번부터 번까지 번호가 붙어 있다고 하자. 친구들 중 i 번째 친구가 사용한 돈은 Mi원이다. 친구들의 부담을 동일하게 하기 위해 파티 후에 서로 돈을 주고받아 사용한 금액이 같도록 하려고 한다. 금액이 정확히 나누어 떨어지지는 않을 수 있으므로, 돈을 가장 많이 사용한 친구와 가장 적게 사용한 친구의 금액 차이가 1인 것까지는 허용한다. 3 명의 친구 A, B, C가 파티를 하였고, 각자 사용한 금액이 6000원, 3000원, 1000원이라고 하자. 아래 그림처럼 B가 A에게 334원, C가 A에게 2333원을 주면 각자 사용한 금액이 A는 3333원, B는 3..
2023.05.21 -
NYPC 2021 예선 | 근무표 짜기
[문제] 사회적 거리 두기를 지키기 위해서 넥슨은 재택근무를 실시하고 있다. 다만, 각 개발자들에게는 반드시 사무실에 출근하는 날수가 지정되어 있다. 매일매일 게임 개발자들은 출근할 수도, 재택 근무할 수도 있지만, 주어진 기간 동안 자신에게 주어진 출근하는 날수만큼 반드시 출근해야 한다. 또한, 매일매일 사무실에는 최대 근무할 수 있는 사람 수의 제한이 있으며, 이보다 많은 사람이 출근해서 일할 수는 없다. 예를 들어, 총 일하는 날이 55일이고, 44명의 개발자들마다 반드시 출근해야 하는 날이 다음과 같이 주어졌다고 하자. 각 개발자는 정해진 출근 날수보다 적거나 많이 출근할 수 없다. 만약 55일 동안 매일 최대 출근할 수 있는 사람 수가 차례로 33, 22, 33, 22, 33이라고 하면 다음과 ..
2023.05.20 -
NYPC 2021 예선 | 폭탄 터트리기 풀이
[문제] 다오는 폭탄 터트리기 게임을 하려고 한다. 게임에서는 폭탄 N개가 좌우로 한 줄로 주어진다. 왼쪽에서 i번째 폭탄은 자연수 값 AiAi를 가진다. 값이 X인 폭탄을 클릭하면 그 폭탄과, 폭탄에 연속적으로 인접하면서 값이 X 이상 X+K 이하인 것들이 모두 터진다. 예를 들어, 위 그림에서 K=3이라고 하고, 왼쪽에서 세 번째 폭탄을 터트린 경우 아래와 같은 상황이 된다. 위 그림처럼 폭탄이 터진 자리는 그대로 남아 있어서, 처음에 인접하지 않았던 폭탄의 쌍은 그 이후에도 인접하지 않다. 폭탄을 클릭하는 횟수가 많을수록 점수가 줄어들어서, 다오는 폭탄을 최소 횟수로 클릭해서 게임을 해결하고 싶다. 주어진 폭탄들과 K의 값을 입력으로 받아 최소 클릭 횟수를 계산하는 프로그램을 작성하라. [입력 형..
2022.09.03