728x90
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do
코드
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) 를 구한다.
'알고리즘 문제 풀이 > SWEA' 카테고리의 다른 글
[SWEA] [S/W 문제해결 기본] 거듭 제곱 python (0) | 2022.05.28 |
---|