문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/181916

제한 사항

입출력 예

풀이
import java.util.stream.IntStream;
class Solution {
public int solution(int a, int b, int c, int d) {
int sum = a + b + c + d;
int[] sortedAbcd = IntStream.of(a, b, c, d).sorted().toArray();
int[] result = IntStream.of(sortedAbcd).distinct().toArray();
switch(result.length) {
case 4:
return result[0];
case 3:
int p = sum - (result[0] + result[1] + result[2]);
return result[0] * result[1] * result[2] / p;
case 2:
if (sortedAbcd[1] != sortedAbcd[2]) {
return (sortedAbcd[1] + sortedAbcd[2])
* Math.abs(sortedAbcd[1] - sortedAbcd[2]);
}
else
return (int) Math.pow(10 * sortedAbcd[1] + (sum - sortedAbcd[1] * 3), 2);
case 1:
return 1111 * result[0];
}
return 0;
}
}
후기
스트림을 사용해서 실행 속도는 느려졌지만 코드 줄 수를 줄일 수 있었다. 근데 이게 왜 레벨 0...?
'코딩테스트 (프로그래머스) > Java' 카테고리의 다른 글
| [프로그래머스][JAVA][Lv. 1] 키패드 누르기 (0) | 2023.07.14 |
|---|---|
| [프로그래머스][JAVA][Lv. 0] 옹알이 (1) (0) | 2023.07.12 |
| [프로그래머스][JAVA][Lv. 1] 두 개 뽑아서 더하기 (0) | 2023.07.11 |
| [프로그래머스][JAVA][Lv. 1] 음양 더하기 (0) | 2023.07.11 |
| [프로그래머스][JAVA][Lv. 1] 로또의 최고 순위와 최저 순위 (0) | 2023.07.11 |