코딩_Python(Level.0)

[Level.0] 주사위 게임1

Hong's_Computer 2026. 3. 12. 11:04
반응형

문제 설명: 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 이하의 정수입니다.

문제 해결

def solution(a, b):
    if a%2 and b%2:
        return a**2 + b**2
    elif a%2 or b%2:
        return 2*(a+b)
    else:
        return abs(a-b)

def solution(a, b):
    if (a&1) & (b&1):
        return a**2 + b**2
    elif (a&1) | (b&1):
        return (a+b) << 1
    else:
        return abs(a-b)

 

주석: %2는 내부적으로 나눗셈 과정을 거치지만 &1은 최하위 비트 하나만 확인하므로 CPU 수준에서 더 빠르다. 마찬가지로 2*보다 <<1이 더 적은 자원을 소모한다.

반응형