정답율이 낮길래 엄청 어려운 문제인가 생각 했는데 그건 아니였습니다. 그러나 처음에는 반복문으로 풀어 시간 초과가 났었고 두번째로는 정상에 도달하면 미끄러지지 않는다는 조건을 해결하지 못해서 틀렸던거 같습니다. 이렇게 생각하면 간단했습니다. 변수 a b c 예제 (2 1 5) 를 기준으로 해서 설명해보겠습니다. 첫날 올라갈 수 있는 높이가 2m 만약 2 1 2 라면 무조건 첫날 도착하는 것이겠죠? a>=c이면 무조건 1을 출력해줍니다. 그리고 나머지 else문은 정상에서 미끄러진 위치를 기준으로 몫이 있냐 없냐를 계산합니다. 왜냐하면 하루에 올라갈 수 있는 높이를 a - b라고 할 수 있는데, 그냥 주어진 정상의 높이에서 이 높이를 나누면 미끄러지지 않아서 도착 했는데 도착하지 않았다고 식이 나옵니다. ..
public class T1 { public int solution(int n, int m, int[][]arr) { int answer = 0; // m이 테스트 횟수, n이 학생 수 for(int i=1;i
public class C23 { public int solution(int n, int[][]arr) { int answer = 0, max = Integer.MIN_VALUE; for(int i=1; i
public class C22 { int [] dx = {-1,0,1,0}; int [] dy = {0,1,0,-1}; public int solution(int n, int[][]arr) { int answer = 0; for(int i = 0; i
/* 격자판 최대합 1. int n을 sc.nextInt() 2. 2차원 배열 생성 (0,1) (0,2) (0,3) ....(0,n) ... (n,n) 3. 값을 입력 받고 4. 최댓값을 설정. 가로 세로 대각선 경우의 수 패턴을 더해가면서 최댓값을 바꾼다. */ public class C21 { public int solution(int [][]arr) { int max = 0; int row = 0; int col = 0; int dia = 0; for(int i=0;i
public class C20 { public int[] solution(int n, int[]arr) { int[] answer = new int[n]; for(int i = 0; i