본문 바로가기

카테고리 없음

정올 강아지와 병아리 1001번 정답/답안/해설

728x90

접근법 및 해결법:
강아지와 병아리의 총 수와 다리 수를 바탕으로 각각의 마리수를 계산합니다.
강아지 한 마리의 다리는 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)

728x90