문제 나의 생각 첫번째로는 board 내에 있는 값들을 / 2 반내림으로 처리하여 움직일 수 값을 재지정. keyinput 값을 switch로 구분하여 move 값을 지정. move가 board의 최대 범위를 벗어 날때는 board 최대 값으로 지정하는 수식으로 추가. 나의 답안 public static int[] solution(String[] keyinput, int[] board) { int[] move = {0,0}; for (int i = 0; i < board.length; i++) { board[i] = (int) Math.floor(board[i] / 2); } int length = 0; while (length != keyinput.length) { switch (keyinput[len..
문제 나의 생각 초반에는 replace 함수를 사용하여 처리하는 방식으로 접근. 하지만 문제에서 보니 한번만 사용이 되는 것이니 여러개의 단어를 한번에 변경하는것은 오답처리가 됨. 다음으로 생각한 것은 indexOf함수를 이용하여 글자 자르기로 접근. 찾아서 나오는 글자 기준으로 찾아서 나오는 indexOf로 글자 앞뒤로 자르고 다시 붙이는 방식으로 접근. 이미 한번이라도 글자가 없는 케이스가 있으면 "none"으로 표시. 나의 답안 public static int solution(String[] spell, String[] dic) { int answer = 2; for (int i = 0; i < dic.length; i++) { String a = ""; for (int j = 0; j < spel..
문제 나의 생각 현재 주어진 문제에서 보여주는 입출력 예 #2 #3을 보고 식을 어느 정도 추측을 할 수 있다. 최소값, 최대값, 그리고 합 3가지 수를 이용하면 충분히 식이 나올 것이라고 생각하고 접근. 나의 답안 public static int solution(int[] sides) { int sum = Arrays.stream(sides).sum(); int max = Arrays.stream(sides).max().orElse(0); int min = Arrays.stream(sides).min().orElse(0); System.out.println(max- min); return (max - (max - min)) + (sum > max + 1 ? sum - (max + 1) : 0 ); }
문제 나의 생각 Hint로 주어진 값을 보고 재귀 함수를 이용하여 답을 초기에 구현을 하였으나, 해당 값이 테스트를 통과하지 못함. 다른 방식을 찾아보는 도중 combination 함수를 이용한 방법으로 해결한 방식을 찾게 되었음. 나의 답안 public static int solution(int balls, int share) { return combination(balls, share); } public static int combination(int balls, int share) { if (share == 0 || balls== share){ return 1; }else { return combination(balls-1, share-1) + combination(balls-1, share); } }
문제 나의 생각 먼저 카운팅을 할 수 있는 배열을 만들고 난 후에, 입력되는 매개변수 기준으로 카운팅을 한다. 카운팅 된 값에서 가장 큰 값을 기준에 있는 인덱스를 가지고 있고, 가장 큰값을 똑같이 가진 인덱스가 있는지 한번 더 확인한다 라는 생각으로 접근 나의 답안 public static int solution(int[] array) { int[] a = new int[1000]; for (int i = 0; i < array.length; i++) { a[array[i]]++; } int answer = 0; int max = 0; for (int i = 0; i < a.length; i++) { if (max < a[i]) { answer = i; max = a[i]; } } int count =..
문제 나의 생각 해당문제에서 문제가 된 부분은 평행이라는 것을 어떻게 확인하냐에 대한 문제였다. 그래서 직선의 기울기를 구하는 공식을 따로 공부를 하고 접근을 했다. 초반 접근은 기울기 공식으로 나오는 값을 List로 담아서 contains로 있다면 1 없다면 0이라는 값으로 접근. 나의 답안 아래의 답을 제출하였는데 테스트 12번 부터 다 실패가 뜨기 시작했다. public static int solution(int[][] dots) { ArrayList a = new ArrayList(); for (int i = 0; i < dots.length-1; i++) { for (int j = i+1; j < dots.length; j++) { double b = ((double)dots[i][1] - do..