본문 바로가기

알고리즘 테스트 공부

주사위 게임 2

 

자바에서 제곱을 계산하는 함수 Math.pow() 입니다.

 

함수: Math.power(double, double)

첫번째인자는 밑수이고, 두번째 인자는 지수입니다.

 

Math.pow(3,2) 이라고 하면 3의 2제곱이 계산을 하게 됩니다.

 

다른사람풀이

class Solution {
    public int solution(int a, int b, int c) {
        int answer = 1;

        int count = 1;
        if(a == b || a == c || b == c) {
            count++;
        }

        if(a == b && b == c) {
            count++;
        }

        for(int i = 1; i <= count; i++) {
            answer *= (pow(a,i)+pow(b,i)+pow(c,i));
        }

        return answer;
    }

    private int pow(int a, int b) {
        if(b == 0) return 1;
        return a * pow(a, b-1);
    }
}

 

class Solution {
    public int solution(int a, int b, int c) {
        return a == b && b == c ? (a + b + c) * (a * a + b * b + c * c) * (a * a * a + b * b * b + c * c * c) : a == b || b == c || c == a ? (a + b + c) * (a * a + b * b + c * c) : a + b + c;
    }
}

 

import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

class Solution {
    public int solution(int a, int b, int c) {
        Set<Integer> numbers = Stream.of(a, b, c).collect(Collectors.toSet());

        return (a + b + c) *
                (numbers.size() < 3 ? a * a + b * b + c * c : 1) *
                (numbers.size() < 2 ? a * a * a + b * b * b + c * c * c : 1);
    }
}

 

import java.util.HashMap;
import java.util.Map;

class Solution {

    public int solution(int a, int b, int c) {
        int answer = 0;
        Map<Integer, Integer> map = new HashMap<>();
        map.put(a, map.getOrDefault(a, 0) + 1);
        map.put(b, map.getOrDefault(a, 0) + 1);
        map.put(c, map.getOrDefault(a, 0) + 1);

        if (map.size() == 1) {
            answer = (int) ((3 * a) * (3 * Math.pow(a, 2)) * (3 * Math.pow(a, 3)));
        } else if (map.size() == 2) {
            answer = (int) ((a + b + c) * (Math.pow(a, 2) + Math.pow(b, 2) + Math.pow(c, 2)));
        } else if (map.size() == 3) {
            answer = (a + b + c);
        }
        return answer;
    }
}

 

런타임줄일 수 있게 다양한 생각하자!! 

'알고리즘 테스트 공부' 카테고리의 다른 글

이어 붙인 수  (2) 2023.12.21
원소들의 곱 과 합  (1) 2023.12.20
등차수열의 특정한 항만 더하기  (0) 2023.12.18
코드 처리하기  (0) 2023.12.14
flag에 따라 다른값 반환하기  (0) 2023.12.08