본문 바로가기
코딩테스트/프로그래머스 기초

[코딩테스트 Lv.0] 주사위 게임 1

by 블루데이제이 2024. 5. 25.
728x90
반응형
문제 설명

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

  • a와 b가 모두 홀수라면 a2 + b2 점을 얻습니다.
  • a와 b 중 하나만 홀수라면 2 × (a + b) 점을 얻습니다.
  • a와 b 모두 홀수가 아니라면 |a - b| 점을 얻습니다.

두 정수 a와 b가 매개변수로 주어질 때, 얻는 점수를 return 하는 solution 함수를 작성해 주세요.

제한사항
a와 b는 1 이상 6 이하의 정수입니다.
입출력 예
a	b	result
3	5	34
6	1	14
2	4	2

 

입출력 설명
입출력 예 #1
예제 1번에서 두 주사위 숫자가 모두 홀수이므로 32 + 52 = 9 + 25 = 34점을 얻습니다. 따라서 34를 return 합니다.

입출력 예 #2
예제 2번에서 두 주사위 숫자 중 하나만 홀수이므로 2 × (6 + 1) = 2 × 7 = 14점을 얻습니다. 따라서 14를 return 합니다.

입출력 예 #3
예제 3번에서 두 주사위 숫자가 모두 홀수가 아니므로 |2 - 4| = |-2| = 2점을 얻습니다. 따라서 2를 return 합니다.

내 풀이
Java
class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        
        if(a % 2 != 0 && b % 2 != 0){
            answer = (int) Math.pow(a, 2) + (int) Math.pow(b, 2);
        }else if(a % 2 == 0 && b % 2 == 0){            
            answer = Math.abs(a - b);
        }else{
            answer = 2 * (a + b);
        }
        
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int a, int b) {
    int answer = 0;
    if(a % 2 == 0 && b % 2 == 0){
        answer = a - b;
        if(answer < 0) answer = answer * -1;
    }else if(a % 2 != 0 && b % 2 != 0){
        answer = a * a + b * b;
    }else{
        answer = 2 * (a + b);
    }
    return answer;
}
Python
def solution(a, b):
    answer = 0
    
    if a % 2 == 0 and b % 2 == 0:
        answer = abs(a - b)
    elif a % 2 != 0 and b % 2 != 0:
        answer = pow(a, 2) + pow(b, 2)
    else:
        answer = 2 * (a + b)
    
    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/181839

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

Apple 2023 맥북 프로 14 M3

COUPANG

www.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형