728x90

https://swexpertacademy.com/main/solvingProblem/solvingProblem.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


코드

T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
    N, A, B = map(int,input().split())
    answer = -1
    for r in range(1,N+1):
        c = 1
        while r*c <= N:
            cond = A * abs(r-c) + B*(N-r*c)
            if answer == -1:
                answer = cond
            else:
                answer = min(answer, cond)
            c += 1
    print("#%d %d" %(test_case, answer))

풀이

answer 를 -1 로 초기화하고 최소값을 비교하며 답을 구한다.

매번 테스트 케이스마다 N, A, B 를 입력받는다.

 

r*c 직사각형으로 정사각형을 만들어야 한다.

r을 포문을 돌면서 포문 안에서 r*c 가 N보다 같거나 작을 때까지 c를 하나씩 더해가며 

문제에서 요구하는 A X lR – Cl + B X (N - R X C) 를 구한다.

+ Recent posts