소개
이 프로젝트에서는 은하 제국의 무기 연구소에서 개발한 두 개의 고성능 레이저 무기의 데미지 값을 계산하는 방법을 배우게 됩니다. 무기 장비 연구소는 무기 값 테스트를 담당하며, 여러분은 데미지 계산 프로세스를 구현하여 이를 돕게 됩니다.
$ python calculate_weapon_damage.py
[3, 2]
🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
- 프로젝트 환경을 설정하고 필요한 파일을 만드는 방법
- 두 레이저 무기의 데미지 값을 계산하기 위해
calculate_weapon_damage()함수를 구현하는 방법 - 제공된 예제 데이터를 사용하여
calculate_weapon_damage()함수를 테스트하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 레이저 무기 데미지 계산에 대한 문제 설명 및 요구 사항 이해
- 선형 방정식 시스템을 해결하고 레이저 무기의 데미지 값을 계산하는 함수 구현
- 올바르게 작동하는지 확인하기 위해 다양한 입력 데이터를 사용하여 구현된 함수 테스트
- 실제 시나리오에 문제 해결 및 프로그래밍 기술 적용
프로젝트 환경 설정
이 단계에서는 프로젝트 환경을 설정하고 프로젝트에 필요한 파일을 수정합니다.
- 텍스트 편집기에서
calculate_weapon_damage.py파일을 엽니다. - 파일 상단에 다음 import 문을 추가합니다:
from typing import List
이렇게 하면 코드에서 List 타입 어노테이션을 사용할 수 있습니다.
calculate_weapon_damage() 함수 구현
이 단계에서는 두 레이저 무기의 데미지 값을 계산하기 위해 calculate_weapon_damage() 함수를 구현합니다.
calculate_weapon_damage.py파일 내에서 다음과 같은 시그니처로calculate_weapon_damage()함수를 정의합니다:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]:
## Your code here
pass
Weapon A 와 Weapon B 의 데미지 값을 계산하는 로직을 구현합니다. 다음 단계를 가이드로 사용할 수 있습니다:
- 입력 배열
test1과test2가 올바른 길이 (각각 3 개의 요소) 를 갖는지 확인합니다. 그렇지 않으면 빈 목록[]을 반환합니다. - 입력 배열의 값을
a1,b1,total1및a2,b2,total2변수로 언팩합니다. - 선형 방정식 시스템을 풀어 데미지 값
x(Weapon A) 와y(Weapon B) 를 찾습니다. 다음 방정식을 사용할 수 있습니다:
a1 * x + b1 * y = total1 a2 * x + b2 * y = total2- 계산된
x와y값을 정수로 변환하고[x, y]목록으로 반환합니다. - 방정식을 푸는 동안
ZeroDivisionError가 발생하면 빈 목록[]을 반환합니다.
코드는 다음과 같습니다:
def calculate_weapon_damage(test1: List[int], test2: List[int]) -> List[int]: if len(test1) != 3 or len(test2) != 3: return [] a1, b1, total1 = test1 a2, b2, total2 = test2 ## a1 * x + b1 * y = total1 ## a2 * x + b2 * y = total2 try: y = (total1 * a2 - total2 * a1) / (b1 * a2 - b2 * a1) x = (total1 - b1 * y) / a1 except ZeroDivisionError: return [] return [int(x), int(y)]- 입력 배열
calculate_weapon_damage()함수를 테스트하기 위해 파일 끝에 다음 코드를 추가합니다:
if __name__ == "__main__":
print(calculate_weapon_damage([4, 5, 22], [3, 2, 13]))
이 코드는 스크립트를 실행할 때 계산된 데미지 값을 출력합니다.
calculate_weapon_damage() 함수 테스트
이 단계에서는 제공된 예제 데이터를 사용하여 calculate_weapon_damage() 함수를 테스트합니다.
calculate_weapon_damage.py파일을 저장합니다.- 터미널을 열고
/home/labex/project디렉토리로 이동합니다. calculate_weapon_damage.py스크립트를 실행합니다:
python calculate_weapon_damage.py
예제 데이터에 대한 예상 결과인 [3, 2]가 출력되어야 합니다.
- 함수가 올바르게 작동하는지 확인하기 위해 다른 입력 데이터를 사용하여 테스트해 봅니다. 예를 들어,
[4, 5, 22]와[3, 2, 14]를 전달하여 함수가 잘못된 입력으로 인해 빈 목록[]을 반환하는지 확인할 수 있습니다.
축하합니다! 두 레이저 무기의 데미지 값을 계산하는 calculate_weapon_damage() 함수를 성공적으로 구현했습니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.



