[Programmers/ 코딩테스트 연습] 평균값 , 옷가게 할인Java
2022. 11. 30. 14:34ㆍIT/Programmers
728x90
반응형
평균값 구하기 (Java)
class Solution {
public double solution(int[] numbers) {
double answer = 0;
double sum = 0;
for (int i = 0; i < numbers.length; i++) {
sum += numbers[i];
}
answer = sum/numbers.length;
return answer;
}
}
어쩐지 너무 길다 싶었는데..
import java.util.Arrays;
class Solution {
public double solution(int[] numbers) {
return Arrays.stream(numbers).average().orElse(0);
}
}
Arrays import하고, numbers를 Arrays로 stream한 뒤, average() 함수를 이용한다.
orElse(0) : 값이 null이면 0 반환
stream 을 이용하면 배열의 병렬 처리, 함수화 작업이 가능하다. 즉 용이하다!
옷가게 할인 (Java)
class Solution {
public int solution(int price) {
int answer = 0;
if (price >= 500000) answer = count(price, 0.8);
else if (price >= 300000) answer = count(price, 0.9);
else if (price >= 100000) answer = count(price, 0.95);
else answer = price;
return answer;
}
public int count (int price, double per) {
int result = 0;
result = (int) ((double)price * per);
return result;
}
}
이건 단순히 Java에서 새로운 함수를 이용한 코드를 짜보고 싶어서 작성해본 결과...
double이랑 int 계산을 오가는게 번거로웠다.
class Solution {
public int solution(int price) {
int answer = 0;
if (price >= 500000) answer = (int)(price * 0.8);
else if (price >= 300000) answer = (int)(price * 0.9);
else if (price >= 100000) answer = (int)(price * 0.95);
else answer = price;
return answer;
}
}
사실은 이 정도면 되는 코드.
바로 return 한 예제도 봤는데, 그럼 좀 위험한 코드 같아서 이걸로 만족.
int * double = double 이라는 걸 알게 되었다.
728x90
반응형