주사위 게임 2

1부터 6까지 숫자가 적힌 주사위가 세 개 있습니다. 세 주사위를 굴렸을 때 나온 숫자를 각각 a, b, c라고 했을 때 얻는 점수는 다음과 같습니다.

세 숫자가 모두 다르다면 a + b + c 점을 얻습니다.
세 숫자 중 어느 두 숫자는 같고 나머지 다른 숫자는 다르다면 (a + b + c) × (a2 + b2 + c2 )점을 얻습니다.
세 숫자가 모두 같다면 (a + b + c) × (a2 + b2 + c2 ) × (a3 + b3 + c3 )점을 얻습니다.
세 정수 a, b, c가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.

 

제한사항

a, b, c는 1이상 6이하의 정수입니다.

 

입출력 예

a b c result
2 6 1 9
5 3 3 473
4 4 4 110592

 

풀이

using System;

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

        if (a != b && b != c && c != a)
        {
            answer = a + b + c;  
        }
        else if (a == b && b == c && a == c)
        {
            answer = (a + b + c) * (a * a + b * b + c * c) * (a * a * a + b * b * b + c * c * c);
        }
        else
        {
            answer = (a + b + c) * (a * a + b * b + c * c);
        }


        return answer;
    }
}

간단한게 if문을 활용하여  조건을 넣어 계산한 값을 출력하면 끝나는 쉬운문제

 


원소들의 곱과 합

 

정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.

 

제한사

2 ≤ num_list의 길이 ≤ 10
1 ≤ num_list의 원소 ≤ 9

 

입출력 예

num_list result
[3, 4, 5, 3, 2, 1] 1
[5, 7, 8, 3] 0

 

풀이

using System;

public class Solution {
    public int solution(int[] num_list) {
        int answer = 0;
        int x = 1;
        int y = 0;
        
        for(int i = 0; i < num_list.Length; i++){
            x *= num_list[i];
            y += num_list[i];
        }
        
        
        return answer = (x < y * y) ? 1 : 0;
    }
}

반복문을 활용하여 num_list의 길이만큼 반복을 하여 x에는 원소들의 곱을 y에는 원소들의 합의 제곱을 저장하여

조건문을 통해 참이면 1 거짓이면 0을 출력한다

+ Recent posts