sugang
sugang'study
sugang
전체 방문자
오늘
어제
  • 분류 전체보기
    • [OS]
    • [취업정보]
    • [Server]
    • [Algorithm]
    • [Database]
    • [MyTravel]
    • [Network]

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • n

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
sugang

sugang'study

[Algorithm]

완전탐색 - 최대최소차

2023. 5. 8. 23:37
n개의 수가 주어졌을 때, 각각의 수에 변화를 적절하게 주어, 최종적으로 나오는 수들 중 최대 최소간의 차가 k 이하가 되게끔 만들려고 합니다. 수 a가 수 b로 바뀌는데 드는 비용이 |a - b|라 했을 때, 필요한 최소 비용 구하기 

ex

6, 3, 7, 3, 5 -> 6, 4, 6, 4, 5

최대 최소간의 차:2(k)

비용: 0 + 1 + 1 + 1 + 0 = 3 발생, 출력: 3

 

solution

최솟값 <= x  <=최솟값+최대 변화값
안에 들면 조건을 충족하므로, 최솟값을 설정하여 그에 맞는 비용을 탐색한다.
최솟값의 범위는 배열의 최솟값~최댓값으로 설정한다.
n,k = map(int,input().split())
arr=list(map(int,input().split()))
ans=1e9

for i in range(min(arr),max(arr)):
    #최솟값 설정하여 탐색 

    cost=0
    for x in arr: 
        if x<i:
            cost+=i-x #최솟값으로 값 맞추기
        elif i<=x<=i+k:
            continue
        elif x > i+k : #최댓값으로 값 맞추기
            cost+=x-(i+k)
    ans=min(cost,ans)

print(ans)

'[Algorithm]' 카테고리의 다른 글

시뮬레이션 - 1차원 폭발 게임  (0) 2023.05.14
[탐색] 전략 추려내기 - ABC 줄세우기  (0) 2023.05.10
완전탐색 - 여러 구간, 구간 합의 최댓값이 최소가 되도록  (0) 2023.05.08
[이코테] 다익스트라 알고리즘  (0) 2022.06.02
[백준] - 2839 설탕배달  (0) 2022.05.27
    '[Algorithm]' 카테고리의 다른 글
    • 시뮬레이션 - 1차원 폭발 게임
    • [탐색] 전략 추려내기 - ABC 줄세우기
    • 완전탐색 - 여러 구간, 구간 합의 최댓값이 최소가 되도록
    • [이코테] 다익스트라 알고리즘
    sugang
    sugang

    티스토리툴바