접근법 및 해결법:
강아지와 병아리의 총 수와 다리 수를 바탕으로 각각의 마리수를 계산합니다.
강아지 한 마리의 다리는 4개, 병아리는 2개이므로, 이를 이용하여 선형 방정식을 설정합니다.
입력 값이 0 0일 때 종료하며, 주어진 범위를 벗어나는 입력에 대해서는 오류 메시지를 출력합니다.
코드 리뷰:
무한 루프(while True)를 사용하여 지속적으로 입력을 받고, '0 0' 입력 시 종료합니다.
입력 값의 범위를 확인하여 'INPUT ERROR!'를 출력하는 부분은 문제 요구사항을 잘 반영합니다.
강아지와 병아리의 수를 계산하는 로직은 선형 방정식을 적절히 활용하고 있습니다.
마지막 조건문에서 유효한 해를 체크하는 것은 정확하며, 계산된 결과가 무효할 때 '0'을 출력하는 것도 문제의 요구사항에 부합합니다.
강아지와 병아리 1001번 답안
while True:
# 강아지와 병아리의 총 수, 총 다리 수를 입력받습니다.
animals, legs = map(int, input().split())
# 종료 조건 체크
if animals == 0 and legs == 0:
break
# 입력 값의 범위 체크
if animals > 1000 or legs > 4000:
print("INPUT ERROR!")
continue
# 가능한 강아지 수 계산 (병아리 2개의 다리를 강아지 4개의 다리로 치환)
dogs = (legs - 2 * animals) // 2
chickens = animals - dogs
# 유효한 해인지 체크 (음수가 아니며, 총 다리 수가 맞는지)
if dogs >= 0 and chickens >= 0 and (4 * dogs + 2 * chickens == legs):
print(dogs, chickens)
else:
print(0)