SWEA(Python) 풀이/D3

SWEA[D3] (Python) 1491번 원재의 벽 꾸미기 풀이

개발윗미 2022. 5. 28. 16:03

Python으로 구현한 1491번 원재의 벽 꾸미기 문제 풀이입니다.

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AV2b9AkKACkBBASw&categoryId=AV2b9AkKACkBBASw&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=PYTHON&select-1=3&pageSize=10&pageIndex=9&&&&&&&&&& 

 

SW Expert Academy

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

swexpertacademy.com


t = int(input())

for tc in range(1, t + 1) :
    min_value = -1
    n, a, b = map(int, input().split())
    for r in range(1, n + 1) :
        c = 1
        while r * c <= n :
            value = a * (abs(r - c)) + b * (n - (r * c))
            if min_value == -1 :
                min_value = value
            else :
                min_value = min(min_value, value)
            c += 1

    print('#%d %d' % (tc, min_value))

 

1. 각 테스트 케이스마다 min_value를 -1로 초기화하고 n, a, b 값을 입력받는다.

 

2. 1부터 n + 1까지를 반복문의 범위로 설정하고, 그 내부에서 c를 1로 초기화한다.

 

3. r * c의 값이 n보다 클 때까지 아래의 작업을 반복한다.

  - 문제에서 제시한 식을 계산하여 value에 할당하고, 만약 min_value가 -1일 경우 min_value에 value를 할당한다.

  - min_value의 값이 -1이 아닐 경우 현재의 min_value와 value를 비교하여 더 작은 값을 min_value에 할당한다.

  - 하나의 반복 수행 작업이 끝날 때마다 c를 1 증가시킨다.

 

4. 최종적으로 해당 테스트 케이스 번호와 함께 min_value를 출력한다.