반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
주의해야 할 점
바로 앞 문제인 6084번 문제와 거의 같은 문제입니다.
다만, 필요한 저장 공간을 출력할 때, 소수점 둘째 자리까지의 정확도로 출력해야 한다는 것을 잊으면 안 됩니다.
출력 형식도 필요한 저장 공간값과 MB 사이에 공백이 있는 것을 잘 봐야 합니다.
생각한 풀이 과정
- 이미지의 가로 해상도 w, 세로 해상도 h, 한 픽셀을 저장하기 위한 비트 b를 공백을 두고 입력합니다. 각각 정수형으로 변환하고 변수 w, h, b에 넣어줍니다.
- 공식에 맞게 필요한 저장 용량을 계산합니다.
- 계산한 필요한 저장 용량을 소수점 셋째 자리에서 반올림하여 소수점 둘째 자리까지의 정확도로 표현하고 변수 need_capacity에 넣어줍니다.
- 출력 형식에 맞게 필요한 저장 용량을 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 가로 해상도 w, 세로 해상도 h,
# 한 픽셀을 저장하기 위한 비트 b를 공백을 두고 입력합니다.
# 각각 정수형으로 변환합니다.
w, h, b = map(int, stdin.readline().split(' '))
# 필요한 저장 용량을 계산하고 소수점 셋째 자리에서 반올림하여 소수점 둘째 자리까지 표현합니다.
# w, h, b를 모두 곱하면 비트 단위이므로
# 바이트(byte) 단위로 변환하기 위해 8로 나누고
# 킬로바이트(KB) 단위로 변환하기 위해 1024로 나누고
# 마지막으로 메가바이트(MB) 단위로 변환하기 위해 1024로 한 번 더 나눕니다.
need_capacity = format(w * h * b / 8 / 1024 / 1024, '.2f')
# 출력 형식에 맞게 출력합니다.
print(f'{need_capacity} MB')
제출 결과
느낀 점
바로 앞 문제 6084번 문제에서처럼 솔직히 w, h, b의 값이 주어진다고 하더라도
이걸로 필요한 저장 용량을 어떻게 계산하는지 공식은 몰랐습니다.
친절하게 설명해놓은 문제 설명에서 잘 읽어보고 계산해봤습니다.
비트맵은 들어봤는데 래스터 방식이라는 말은 처음 들어보네요.
공부가 많이 모자랍니다. ㅎㅎ
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글