Queen’s Attack II
문제: Queen’s Attack II 난이도: Medium 문제 설명 체스 판에 퀸이 하나, 장애물이 없거나 있을 경우 퀸이 몇 칸을 공격할 수 있는지를 구하여라. 주어지는 정보는 체스 판의 가로(세로)길이 n, 장애물의 수 k, 퀸의 위치인 r_q(행 위치)와 c_q(열 위치), 장애물들의 위치(행, 열)가 있다. 예를 들어, 체스 판의 크기가 5 x 5, 퀸의 위치가 (4, 3), 장애물이 3개이고 위치는 각각 (5, 5), (4, 2), (2, 3)이면 다음과 같은 상황이다. 따라서 이 경우의 답은 10이다. 문제 해결 소스 코드 static int queensAttack(int n, int k, int r_q, int c_q, int[][] obstacles) { int sr = r_q; int..
Save the Prisoner!
문제: Save the Prisoner! 난이도: Easy 문제 설명 간수가 원탁에 앉은 죄수들에게 사탕을 나눠주려 한다. 그런데 간수가 장난을 쳐서 가장 마지막에 사탕을 받는 죄수는 반드시 끔찍한 맛의 사탕을 받게 된다. 죄수의 수 n, 사탕의 수 m, 시작하는 좌석의 번호 s가 주어질 경우 몇 번째 좌석의 죄수가 끔찍한 맛의 사탕에 당첨될지를 알아내라. 예를 들어 죄수가 4명, 사탕이 6개, 시작하는 좌석의 번호를 2라고 하면 2, 3, 4, 1, 2, 3으로 3번 좌석에 앉은 죄수가 끔찍한 맛의 사탕에 당첨된다. 문제 해결 소스 코드 static int saveThePrisoner(int n, int m, int s) { int result = 0; if(n >= m) { result = m + s..
Picking Numbers
문제: Picking Numbers 난이도: Easy 문제 설명 주어진 정수형 배열에서 둘의 차가 1이하인 정수 두 가지만을 요소로 갖는 배열 중 길이가 가장 긴 경우의 길이를 출력하여라. 예를 들어 배열 a = [1, 1, 2, 2, 4, 4, 5, 5, 5]의 경우는 [1, 1, 2, 2], [4, 4, 5, 5, 5] 두 가지 배열이 만들어질 수 있다. 그리고 두 배열 중 가장 길이가 긴 경우는 [4, 4, 5, 5, 5]의 5이다. 문제 해결 소스 코드 public static int pickingNumbers(List a) { List values = new ArrayList(); int max = 0; int maxTemp = 0; for(int i = 0; i < a.size(); i++) ..