프로그래머스(자바)
특이한 정렬★★★ sorted(), compareTo(), compare(A, B)
다른 사람의 풀이 import java.util.Arrays; class Solution { public int[] solution(int[] numList, int n) { return Arrays.stream(numList) .boxed() .sorted((a, b) -> Math.abs(a - n) == Math.abs(b - n) ? b.compareTo(a) : Integer.compare(Math.abs(a - n), Math.abs(b - n))) .mapToInt(Integer::intValue) .toArray(); } } ▶ boxed()의 리턴타입은 Stream 이다. ★ ▶ mapToInt(Integer::intValue)의 리턴타입은 IntStream 이다. ▶ mapToInt(I..
가까운 수 → "특이한 정렬"과 유사 + abs(n-array[i]) 갱신논리
다른 사람의 풀이 import java.util.*; class Solution { public int solution(int[] array, int n) { Arrays.sort(array); int min = Math.abs(array[0]-n); int minIdx = 0; for(int i=1; i
팩토리얼 → ★축약 연산자를 이용한 팩토리얼
나의 풀이 class Solution { public int solution(int n) { int k = 10; while(n < factorial(k)) k -= 1; return k; } public int factorial (int num) { if (num == 1) return 1; return num * factorial ( num - 1 ); } } ▶ 재귀함수를 이용하여 팩토리얼을 구현하였다. 다른 사람의 풀이 class Solution { public int solution(int n) { int fac = 1; int i = 0; while(true){ if(fac
2차원으로 만들기→이중for문★, %연산자★ 2차원배열
다른 사람의 풀이1 class Solution { public int[][] solution(int[] num_list, int n) { int[][] answer = {}; int length = num_list.length; answer = new int[length/n][n]; for(int i=0; i