[Programmers/ 코딩테스트 연습] 평균값 , 옷가게 할인Java

2022. 11. 30. 14:34IT/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
반응형