# Coding/# 백준
[백준 / 1350] 진짜 공간 - Python
강현들
2021. 4. 2. 17:15
728x90
반응형
https://www.acmicpc.net/problem/1350
1350번: 진짜 공간
첫째 줄에 파일의 개수 N이 주어진다. N은 1,000보다 작거나 같은 자연수이다. 둘째 줄에는 파일의 크기가 공백을 사이에 두고 하나씩 주어진다. 파일의 크기는 1,000,000,000보다 작거나 같은 음이 아
www.acmicpc.net
<접근>
만약 file의 크기가 0이면 클러스터의 개수를 더하지 않고, file의 크기가 클러스터와 같거나 작다면 개수를 1 더해주고, 클러스터의 크기보다 크다면 file을 클러스터로 나눴을 때 나누어 떨어지는 경우 몫만큼 개수를 더해주고, 나머지가 있는 경우 몫을 더한 값에 1을 더 더해준다.
<입력>
input()
files = list(map(int, input().split()))
cluster = int(input())
파일의 개수를 입력 받는다.
파일의 크기를 입력 받아 files라는 리스트로 저장한다.
클러스터의 크기를 입력 받는다.
<계산 및 출력>
count = 0
for file in files:
if file == 0:
continue
elif file > cluster:
if file % cluster == 0:
count += file/cluster
else:
count += file//cluster+1
else:
count += 1
print(int(count*cluster))
필요한 클러스터의 개수를 count라는 변수에 저장한다.
files에 담긴 파일의 개수만큼 반복한다. 만약 파일의 크기가 0이면 클러스터가 필요없으므로 count를 증가시키지 않는다.
만약 파일의 크기가 클러스터보다 큰 경우 파일을 클러스터로 나누었을 때 나머지가 없다면 개수에 몫만큼 더해주고, 나머지가 있다면 클러스터가 1개 더 필요하므로, 몫에다가 1을 더 더해준다.
파일이 클러스터보다 작다면 개수를 1 증가시킨다.
원하는 결과는 사용한 디스크의 공간이므로 필요한 클러스터의 개수(count)와 클러스터의 크기를 곱해서 출력한다.
<전체 코드>
input()
files = list(map(int, input().split()))
cluster = int(input())
count = 0
for file in files:
if file == 0:
continue
elif file > cluster:
if file % cluster == 0:
count += file/cluster
else:
count += file//cluster+1
else:
count += 1
print(int(count*cluster))
728x90
반응형