반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
주의해야 할 점
필요한 저장 공간을 출력할 때, 소수점 첫째 자리까지의 정확도로 출력해야 한다는 것을 잊으면 안됩니다.
출력 형식도 필요한 저장 공간값과 MB 사이에 공백이 있는 것을 잘 봐야합니다.
생각한 풀이 과정
- 1초 동안 마이크로 소리강약을 체크하는 횟수 h, 한 번 체크한 값을 저장할 때 사용하는 비트수 b, 좌우 등 소리를 저장할 트랙 개수인 채널 개수 c, 녹음할 시간(초) s를 공백을 두고 입력합니다. 각각 정수형으로 변환하고 변수 h, b, c, s에 넣어줍니다.
- 공식에 맞게 필요한 저장 용량을 계산합니다.
- 계산한 필요한 저장 용량을 소수점 첫째 자리까지의 정확도로 표현하고 변수 need_capacity에 넣어줍니다.
- 출력 형식에 맞게 필요한 저장 용량을 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 1초 동안 마이크로 소리강약을 체크하는 횟수 h,
# 한 번 체크한 값을 저장할 때 사용하는 비트 수 b,
# 좌우 등 소리를 저장할 트랙 개수인 채널 개수 c,
# 녹음할 시간(초) s를 공백을 두고 입력합니다.
# 각각 정수형으로 변환하고 변수에 넣어줍니다.
h, b, c, s = map(int, stdin.readline().split(' '))
# 필요한 저장 용량을 계산하고 소수점 첫째 자리까지의 정확도로 표현합니다.
# h, b, c, s를 모두 곱하면 비트 단위이므로
# 바이트(byte) 단위로 변환하기 위해 8로 나누고
# 킬로바이트(KB) 단위로 변환하기 위해 1024로 나누고
# 마지막으로 메가바이트(MB) 단위로 변환하기 위해 1024로 한 번 더 나눕니다.
need_capacity = format(h * b * c * s / 8 / 1024 / 1024, '.1f')
# 출력 형식에 맞게 출력합니다.
print(f'{need_capacity} MB')
제출 결과
느낀 점
솔직히 h, b, c, s의 값이 주어진다고 하더라도 이걸로 필요한 저장 용량을 어떻게 계산하는지 공식은 몰랐습니다.
친절하게 설명해놓은 문제 설명에서 잘 읽어보고 계산해봤습니다.
PCM 방법이라는 것도 처음 알게 되었습니다.
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글