호그와트

너무나 아름다운 논리

영웅*^%&$ 2023. 1. 27. 14:08
728x90

#두 종류의 물건이 아주 많이 있다고 가정합니다

#하나는 4kg, 하나는 7kg입니다

#정량 S kg이 입력되었을 때 이 S kg을 정확히 채울 수 있도록 두 종류의 물건을 더해갑니다 꼭 두 값이 일정하게 더해질 필요는 없습니다 S를 정확히 맞추기 위해 4kg 혹은 7 kg을 더 많이 더할 수 있습니다

#이 때 이 더한 수의 숫자를 최소화하여 이 최소화된 숫자를 출력합니다 즉 S값을 정확히 맞추기 위해 4 혹은 7을 더한 횟수를 최소화해야 합니다

#어떤 경우에도(어떤 방식으로 더해도) S kg이 정확히 맞지 않는다면 -1을 출력합니다

'''
s = int("we don't support too large numbers ", input())
result = []

count = 0
def min_items(s):
  for i in range(1, 101):
      for j in range(1, 101):
          if 4*i + 7*j == s:
              return count + i + j

  return -1

print(min_items(s))

'''
s = int(input())
min_count = float('inf') #min 함수 토큰값 무한대

for i in range(0, s // 4 + 1): #for문에서 마지막은 제외되니 +1
    for j in range(0, s // 7 + 1):
        if 4*i + 7*j == s:
            min_count = min(min_count, i + j)

if min_count == float('inf'):
    print(-1)
else:
    print(min_count)

728x90

'호그와트' 카테고리의 다른 글

골드바흐의 추측 파티션 계산  (0) 2023.01.31
깔끔한 쨰각째각  (0) 2023.01.28
챗 보크 만들기  (0) 2023.01.25
가나다라마바사  (0) 2023.01.21
오랜만에 아주 쉬운 거  (0) 2023.01.18